• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "Passing value as bool": {
3    "prefix": "akipassvalueasbool",
4    "body": [
5      "// As is used to convert JavaScript objects into bool data type in C/C++.",
6      "bool PassingValueAsBool(aki::Value value) { return value.As<bool>(); }",
7      "JSBIND_GLOBAL() {",
8      "  JSBIND_FUNCTION(PassingValueAsBool);",
9      "}"
10    ]
11  },
12  "Passing value as uint8": {
13    "prefix": "akipassvalueasuint8",
14    "body": [
15      "// As is used to convert JavaScript objects into uint8_t data type in C/C++.",
16      "uint8_t PassingValueAsUint8(aki::Value value) { return value.As<uint8_t>(); }",
17      "JSBIND_GLOBAL() {",
18      "  JSBIND_FUNCTION(PassingValueAsUint8);",
19      "}"
20    ]
21  },
22  "Passing value as int8": {
23    "prefix": "akipassvalueasint8",
24    "body": [
25      "// As is used to convert JavaScript objects into int8_t data type in C/C++.",
26      "int8_t PassingValueAsInt8(aki::Value value) { return value.As<int8_t>(); }",
27      "JSBIND_GLOBAL() {",
28      "  JSBIND_FUNCTION(PassingValueAsInt8);",
29      "}"
30    ]
31  },
32  "Passing value as uint16": {
33    "prefix": "akipassvalueasuint16",
34    "body": [
35      "// As is used to convert JavaScript objects into uint16_t data type in C/C++.",
36      "uint16_t PassingValueAsUint16(aki::Value value) { return value.As<uint16_t>(); }",
37      "JSBIND_GLOBAL() {",
38      "  JSBIND_FUNCTION(PassingValueAsUint16);",
39      "}"
40    ]
41  },
42  "Passing value as int16": {
43    "prefix": "akipassvalueasint16",
44    "body": [
45      "// As is used to convert JavaScript objects into int16_t data type in C/C++.",
46      "int16_t PassingValueAsInt16(aki::Value value) { return value.As<int16_t>(); }",
47      "JSBIND_GLOBAL() {",
48      "  JSBIND_FUNCTION(PassingValueAsInt16);",
49      "}"
50    ]
51  },
52  "Passing value as int": {
53    "prefix": "akipassvalueasint",
54    "body": [
55      "// As is used to convert JavaScript objects into int data type in C/C++.",
56      "int PassingValueAsInt(aki::Value value) { return value.As<int>(); }",
57      "JSBIND_GLOBAL() {",
58      "  JSBIND_FUNCTION(PassingValueAsInt);",
59      "}"
60    ]
61  },
62  "Passing value as int64": {
63    "prefix": "akipassvalueasint64",
64    "body": [
65      "// As is used to convert JavaScript objects into int64_t data type in C/C++.",
66      "int64_t PassingValueAsInt64(aki::Value value) { return value.As<int64_t>(); }",
67      "JSBIND_GLOBAL() {",
68      "  JSBIND_FUNCTION(PassingValueAsInt64);",
69      "}"
70    ]
71  },
72  "Passing value as float": {
73    "prefix": "akipassvalueasfloat",
74    "body": [
75      "// As is used to convert JavaScript objects into float data type in C/C++.",
76      "float PassingValueAsFloat(aki::Value value) { return value.As<float>(); }",
77      "JSBIND_GLOBAL() {",
78      "  JSBIND_FUNCTION(PassingValueAsFloat);",
79      "}"
80    ]
81  },
82  "Passing value as double": {
83    "prefix": "akipassvalueasdouble",
84    "body": [
85      "// As is used to convert JavaScript objects into double data type in C/C++.",
86      "double PassingValueAsDouble(aki::Value value) { return value.As<double>(); }",
87      "JSBIND_GLOBAL() {",
88      "  JSBIND_FUNCTION(PassingValueAsDouble);",
89      "}"
90    ]
91  },
92  "Passing value as string": {
93    "prefix": "akipassvalueasstring",
94    "body": [
95      "// As is used to convert JavaScript objects into std::string data type in C/C++.",
96      "std::string PassingValueAsString(aki::Value value) { return value.As<std::string>(); }",
97      "JSBIND_GLOBAL() {",
98      "  JSBIND_FUNCTION(PassingValueAsString);",
99      "}"
100    ]
101  },
102  "Passing value as function": {
103    "prefix": "akipassvalueasfunction",
104    "body": [
105      "// Invoke a JavaScript function, passing a string parameter and returning a result string.",
106      "std::string PassingValueAsFunction(aki::Value value) { return value(\"aki value from c++\").As<std::string>(); }",
107      "JSBIND_GLOBAL() {",
108      "  JSBIND_FUNCTION(PassingValueAsFunction);",
109      "}"
110    ]
111  },
112  "Passing array value return array value": {
113    "prefix": "akiarraypushvalue",
114    "body": [
115      "// aki::Value is a class used for mapping the any type in JavaScript in C/C++.",
116      "aki::Value PassingArrayValueReturnArrayValue(aki::Value value) {",
117      "  // aki::Value::CallMethod is used to call the member functions of JavaScript objects and pass parameters.",
118      "  // Invoke the push method of the JavaScript array object, and pass the string \"jsbind\" as a parameter to this method.",
119      "  value.CallMethod(\"push\", \"jsbind\");",
120      "  return value;",
121      "}",
122      "JSBIND_GLOBAL() {",
123      "  JSBIND_FUNCTION(PassingArrayValueReturnArrayValue);",
124      "}"
125    ]
126  },
127  "Passing value as json object": {
128    "prefix": "akipassvalueasobject",
129    "body": [
130      "aki::Value PassingValueAsJsonObject(aki::Value value) {",
131      "  // Create a new aki::Value object for dynamic property access in C++.",
132      "  aki::Value val = aki::Value::NewObject();",
133      "  // Set a property name (key) and a value (value) into an aki::Value object.",
134      "  val.Set(\"name\", \"John\");",
135      "  return val;",
136      "}",
137      "JSBIND_GLOBAL() {",
138      "  JSBIND_FUNCTION(PassingValueAsJsonObject);",
139      "}"
140    ]
141  },
142  "Aki check value is undefined": {
143    "prefix": "akicheckvalueisundefined",
144    "body": [
145      "// Determine whether the aki::Value object is mapped to undefined in JavaScript.",
146      "aki::Value PassingValueCheckIsUndefined(aki::Value value) { return aki::Value(value.IsUndefined()); }",
147      "JSBIND_GLOBAL() {",
148      "  JSBIND_FUNCTION(PassingValueCheckIsUndefined);",
149      "}"
150    ]
151  },
152  "Aki check value is null": {
153    "prefix": "akicheckvalueisnull",
154    "body": [
155      "// Determine whether the aki::Value object is mapped to null in JavaScript.",
156      "aki::Value PassingValueCheckIsNull(aki::Value value) { return aki::Value(value.IsNull()); }",
157      "JSBIND_GLOBAL() {",
158      "  JSBIND_FUNCTION(PassingValueCheckIsNull);",
159      "}"
160    ]
161  },
162  "Aki check value is bool": {
163    "prefix": "akicheckvalueisbool",
164    "body": [
165      "// Determine whether the aki::Value object is mapped to bool in JavaScript.",
166      "aki::Value PassingValueCheckIsBool(aki::Value value) { return aki::Value(value.IsBool()); }",
167      "JSBIND_GLOBAL() {",
168      "  JSBIND_FUNCTION(PassingValueCheckIsBool);",
169      "}"
170    ]
171  },
172  "Aki check value is number": {
173    "prefix": "akicheckvalueisnumber",
174    "body": [
175      "// Determine whether the aki::Value object is mapped to number in JavaScript.",
176      "aki::Value PassingValueCheckIsNumber(aki::Value value) { return aki::Value(value.IsNumber()); }",
177      "JSBIND_GLOBAL() {",
178      "  JSBIND_FUNCTION(PassingValueCheckIsBool);",
179      "}"
180    ]
181  },
182  "Aki check value is string": {
183    "prefix": "akicheckvalueisstring",
184    "body": [
185      "// Determine whether the aki::Value object is mapped to string in JavaScript.",
186      "aki::Value PassingValueCheckIsString(aki::Value value) { return aki::Value(value.IsString()); }",
187      "JSBIND_GLOBAL() {",
188      "  JSBIND_FUNCTION(PassingValueCheckIsString);",
189      "}"
190    ]
191  },
192  "Aki check value is object": {
193    "prefix": "akicheckvalueisobject",
194    "body": [
195      "// Determine whether the aki::Value object is mapped to object in JavaScript.",
196      "aki::Value PassingValueCheckIsObject(aki::Value value) { return aki::Value(value.IsObject()); }",
197      "JSBIND_GLOBAL() {",
198      "  JSBIND_FUNCTION(PassingValueCheckIsObject);",
199      "}"
200    ]
201  },
202  "Aki check value is array": {
203    "prefix": "akicheckvalueisarray",
204    "body": [
205      "// Determine whether the aki::Value object is mapped to array in JavaScript.",
206      "aki::Value PassingValueCheckIsArray(aki::Value value) { return aki::Value(value.IsArray()); }",
207      "JSBIND_GLOBAL() {",
208      "  JSBIND_FUNCTION(PassingValueCheckIsArray);",
209      "}"
210    ]
211  },
212  "Aki check value is function": {
213    "prefix": "akicheckvalueisfunction",
214    "body": [
215      "// Determine whether the aki::Value object is mapped to function in JavaScript.",
216      "aki::Value PassingValueCheckIsFunction(aki::Value value) { return aki::Value(value.IsFunction()); }",
217      "JSBIND_GLOBAL() {",
218      "  JSBIND_FUNCTION(PassingValueCheckIsFunction);",
219      "}"
220    ]
221  },
222  "Aki value from global json stringify": {
223    "prefix": "akivaluefromglobaljsonstringify",
224    "body": [
225      "aki::Value FromGlobalJSONStringify(aki::Value obj) {",
226      "  // Used to obtain properties under globalThis on the JS side.",
227      "  aki::Value json = aki::Value::FromGlobal(\"JSON\");",
228      "  return json[\"stringify\"](obj);",
229      "}",
230      "JSBIND_GLOBAL() {",
231      "  JSBIND_FUNCTION(FromGlobalJSONStringify);",
232      "}"
233    ]
234  },
235  "Aki value from global json parse": {
236    "prefix": "akivaluefromglobaljsonparse",
237    "body": [
238      "aki::Value FromGlobalJSONParse(aki::Value obj) {",
239      "  // Used to obtain properties under globalThis on the JS side.",
240      "  aki::Value json = aki::Value::FromGlobal(\"JSON\");",
241      "  return json[\"parse\"](obj);",
242      "}",
243      "JSBIND_GLOBAL() {",
244      "  JSBIND_FUNCTION(FromGlobalJSONParse);",
245      "}"
246    ]
247  }
248}