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}