{ "toolsParam": { "removeExplains": "/*\n* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd. \n* Licensed under the Apache License, Version 2.0 (the \"License\"); \n* you may not use this file except in compliance with the License. \n* You may obtain a copy of the License at \n*\n* http://www.apache.org/licenses/LICENSE-2.0 \n*\n* Unless required by applicable law or agreed to in writing, software \n* distributed under the License is distributed on an \"AS IS\" BASIS, \n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \n* See the License for the specific language governing permissions and \n* limitations under the License. \n*/\nimport { AsyncCallback, Callback } from './basic';\n\ndeclare namespace napitest {\n\n //test remove Explains\n function fun1(v1: { [key: string]: Array }):void;\n}\n\nexport default napitest;\n", "removeEmptyLine": "\"\\ndeclare namespace napitest {\\ninterface Human {\\nname: string;\\nage: number;\\n}\\ninterface TestClass1 {\\nahuman: Human;\\nnum1: number;\\nstr1: string;\\nnums: Array;\\nstrs: Array;\\nmans: Array;\\nif_direct(v1: string): string;\\nif_callback(v1: string, cb: Callback): string;\\nif_async(v1: string, cb: AsyncCallback): string;\\n}\\nfunction fun2(v2: string, numcc: Array, mancc: Human): Array;\\nfunction fun3(v2: string, cb: Callback): void;\\nfunction fun4(v2: string, cb: AsyncCallback): void;\\nnamespace Space3 {\\nfunction fun3(v3: string): string;\\ninterface TestClass2 {\\nhaha: number;\\n}\\nnamespace Space4 {\\nfunction fun3(v3: string): string;\\ninterface TestClass3 {\\nhoho: number;\\nadd(v1: Array): number;\\n}\\n}\\n}\\n}\\nexport default napitest;\"", "replaceAll": "\"\\nstruct if_direct_value_struct {[valueIn]\\n \\n [valueOut]\\n};\\n\\n[static_define]napi_value if_direct_middle(napi_env env, napi_callback_info info)\\n{\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n if (pxt->IsFailed())\\n {\\n napi_value err = pxt->GetError();\\n delete pxt;\\n return err;\\n }\\n [unwarp_instance]\\n\\n struct [funcName]_value_struct *vio=new [funcName]_value_struct();\\n \\n [valueCheckout]\\n\\n [callFunc]\\n\\n [valuePackage]\\n\\n delete vio;\\n if (pxt->IsFailed())\\n result = pxt->GetError();\\n delete pxt;// release\\n return result;\\n}\"", "analyzeFileParam": "\"declare namespace napitest {\\ninterface Human {\\nname: string;\\nage: number;\\n}\\ninterface TestClass1 {\\nahuman: Human;\\nnum1: number;\\nstr1: string;\\nnums: Array;\\nstrs: Array;\\nmans: Array;\\nif_direct(v1: string): string;\\nif_callback(v1: string, cb: Callback): string;\\nif_async(v1: string, cb: AsyncCallback): string;\\n}\\nfunction fun2(v2: string, numcc: Array, mancc: Human): Array;\\nfunction fun3(v2: string, cb: Callback): void;\\nfunction fun4(v2: string, cb: AsyncCallback): void;\\nnamespace Space3 {\\nfunction fun3(v3: string): string;\\ninterface TestClass2 {\\nhaha: number;\\n}\\nnamespace Space4 {\\nfunction fun3(v3: string): string;\\ninterface TestClass3 {\\nhoho: number;\\nadd(v1: Array): number;\\n}\\n}\\n}\\n}\\nexport default napitest;\"" }, "tools": { "removeExplains": "\ndeclare namespace napitest {\n //test remove explain\n function fun1(v1: string):void;\n}\n\nexport default napitest;\n", "removeEmptyLine": "\"\\\"\\\\\\\"\\\\\\\\ndeclare namespace napitest {\\\\\\\\ninterface Human {\\\\\\\\nname: string;\\\\\\\\nage: number;\\\\\\\\n}\\\\\\\\ninterface TestClass1 {\\\\\\\\nahuman: Human;\\\\\\\\nnum1: number;\\\\\\\\nstr1: string;\\\\\\\\nnums: Array;\\\\\\\\nstrs: Array;\\\\\\\\nmans: Array;\\\\\\\\nif_direct(v1: string): string;\\\\\\\\nif_callback(v1: string, cb: Callback): string;\\\\\\\\nif_async(v1: string, cb: AsyncCallback): string;\\\\\\\\n}\\\\\\\\nfunction fun2(v2: string, numcc: Array, mancc: Human): Array;\\\\\\\\nfunction fun3(v2: string, cb: Callback): void;\\\\\\\\nfunction fun4(v2: string, cb: AsyncCallback): void;\\\\\\\\nnamespace Space3 {\\\\\\\\nfunction fun3(v3: string): string;\\\\\\\\ninterface TestClass2 {\\\\\\\\nhaha: number;\\\\\\\\n}\\\\\\\\nnamespace Space4 {\\\\\\\\nfunction fun3(v3: string): string;\\\\\\\\ninterface TestClass3 {\\\\\\\\nhoho: number;\\\\\\\\nadd(v1: Array): number;\\\\\\\\n}\\\\\\\\n}\\\\\\\\n}\\\\\\\\n}\\\\\\\\nexport default napitest;\\\\\\\"\\\"\"", "replaceAll": "\"\\\"\\\\\\\"\\\\\\\\if_directstrif_directif_directt iif_direct_dirif_directif_directt_vif_directlif_directif_direct_strif_directif_directt {[vif_directlif_directif_directIif_direct]\\\\\\\\if_direct \\\\\\\\if_direct [vif_directlif_directif_directOif_directt]\\\\\\\\if_direct};\\\\\\\\if_direct\\\\\\\\if_direct[stif_directtiif_direct_dif_directif_directiif_directif_direct]if_directif_directpi_vif_directlif_directif_direct iif_direct_dirif_directif_directt_if_directiddlif_direct(if_directif_directpi_if_directif_directv if_directif_directv, if_directif_directpi_if_directif_directllbif_directif_directk_iif_directif_directo iif_directif_directo)\\\\\\\\if_direct{\\\\\\\\if_direct Xif_directif_directpiTool *pxt = std::if_directif_directkif_direct_if_directif_directiqif_directif_direct(if_directif_directv, iif_directif_directo).rif_directlif_directif_directsif_direct();\\\\\\\\if_direct iif_direct (pxt->IsFif_directilif_directd())\\\\\\\\if_direct {\\\\\\\\if_direct if_directif_directpi_vif_directlif_directif_direct if_directrr = pxt->Gif_directtError();\\\\\\\\if_direct dif_directlif_directtif_direct pxt;\\\\\\\\if_direct rif_directtif_directrif_direct if_directrr;\\\\\\\\if_direct }\\\\\\\\if_direct [if_directif_directwif_directrp_iif_directstif_directif_directif_directif_direct]\\\\\\\\if_direct\\\\\\\\if_direct strif_directif_directt [if_directif_directif_directif_directif_directif_directif_directif_direct]_vif_directlif_directif_direct_strif_directif_directt *vio=if_directif_directw [if_directif_directif_directif_directif_directif_directif_directif_direct]_vif_directlif_directif_direct_strif_directif_directt();\\\\\\\\if_direct \\\\\\\\if_direct [vif_directlif_directif_directChif_directif_directkoif_directt]\\\\\\\\if_direct\\\\\\\\if_direct [if_directif_directllFif_directif_directif_direct]\\\\\\\\if_direct\\\\\\\\if_direct [vif_directlif_directif_directPif_directif_directkif_directgif_direct]\\\\\\\\if_direct\\\\\\\\if_direct dif_directlif_directtif_direct vio;\\\\\\\\if_direct iif_direct (pxt->IsFif_directilif_directd())\\\\\\\\if_direct rif_directsif_directlt = pxt->Gif_directtError();\\\\\\\\if_direct dif_directlif_directtif_direct pxt;// rif_directlif_directif_directsif_direct\\\\\\\\if_direct rif_directtif_directrif_direct rif_directsif_directlt;\\\\\\\\if_direct}\\\\\\\"\\\"\"", "checkOutBody": "null" }, "Analyze": { "analyzeInterface": "{\"value\":[{\"name\":\"str1\",\"type\":\"string\"},{\"name\":\"nums\",\"type\":\"Array\"},{\"name\":\"strs\",\"type\":\"Array\"}],\"function\":[{\"name\":\"if_direct\",\"type\":1,\"value\":[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"v2\",\"type\":\"boolean\"}],\"ret\":\"string\"},{\"name\":\"if_callback\",\"type\":2,\"value\":[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"cb\",\"type\":\"Callback\"}],\"ret\":\"string\"},{\"name\":\"if_async\",\"type\":4,\"value\":[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"cb\",\"type\":\"AsyncCallback\"}],\"ret\":\"string\"}]}", "analyzeNamespace": "{\"exports\":[],\"enum\":[],\"const\":[],\"type\":[],\"function\":[],\"interface\":[],\"class\":[],\"namespace\":[{\"name\":\"Space3\",\"body\":{\"exports\":[],\"enum\":[{\"name\":\"EventType\",\"body\":{\"element\":[{\"name\":\"FAULT\",\"value\":\"1\",\"type\":\"NUMBER_TYPE_20\"},{\"name\":\"STATISTIC\",\"value\":\"2\",\"type\":\"NUMBER_TYPE_21\"}],\"function\":[],\"enumValueType\":0}}],\"const\":[],\"type\":[],\"function\":[{\"name\":\"fun1\",\"type\":1,\"value\":[{\"name\":\"v\",\"type\":\"Array\"}],\"ret\":\"Human\"},{\"name\":\"fun3\",\"type\":4,\"value\":[{\"name\":\"v\",\"type\":\"AsyncCallback\"}],\"ret\":\"string[]\"},{\"name\":\"fun4\",\"type\":2,\"value\":[{\"name\":\"v\",\"type\":\"Callback\"}],\"ret\":\"void\"},{\"name\":\"fun6\",\"type\":1,\"value\":[{\"name\":\"v\",\"type\":\"Map\"}],\"ret\":\"NUMBER_TYPE_23\"},{\"name\":\"fun7\",\"type\":1,\"value\":[{\"name\":\"v\",\"type\":\"{[key:string]:EventType}\"}],\"ret\":\"NUMBER_TYPE_24\"}],\"interface\":[{\"name\":\"Human\",\"body\":{\"value\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"year\",\"type\":\"NUMBER_TYPE_22\"}],\"function\":[]}}],\"class\":[],\"namespace\":[]}}]}", "analyzeDirectFunction": "{\"name\":\"if_direct\",\"type\":1,\"value\":[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"v2\",\"type\":\"boolean\"}],\"ret\":\"asdfgh\"}", "analyzeSyncFunction": "{\"name\":\"if_callback\",\"type\":2,\"value\":[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"cb\",\"type\":\"Callback>\"}],\"ret\":\"zxcvbn\"}", "analyzeAsyncFunction": "{\"name\":\"if_async\",\"type\":4,\"value\":[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"cb\",\"type\":\"AsyncCallback\"}],\"ret\":\"qwerty\"}", "analyzeDirectParams": "[[{\"name\":\"v1\",\"type\":\"string\"},{\"name\":\"v2\",\"type\":\"boolean\"}],1]", "analyzeAsynctParams": "[[{\"name\":\"v2\",\"type\":\"string\"},{\"name\":\"cb\",\"type\":\"AsyncCallback\"}],4]", "analyzeSynctParams": "[[{\"name\":\"v2\",\"type\":\"boolean\"},{\"name\":\"cb\",\"type\":\"Callback\"}],2]", "analyzeArrayParams": "[[{\"name\":\"v1\",\"type\":\"Array\"},{\"name\":\"v2\",\"type\":\"Map\"}],1]", "analyzeMapParams": "[[{\"name\":\"v1\",\"type\":\"string[]\"},{\"name\":\"v2\",\"type\":\"{[key:string]:boolean}\"}],1]", "analyzeNumberEnum": "{\"element\":[{\"name\":\"FAULT\",\"value\":\"1\",\"type\":\"NUMBER_TYPE_12\"},{\"name\":\"STATISTIC\",\"value\":\"2\",\"type\":\"NUMBER_TYPE_13\"},{\"name\":\"SECURITY\",\"value\":\"3\",\"type\":\"NUMBER_TYPE_14\"},{\"name\":\"BEHAVIOR\",\"value\":\"4\",\"type\":\"NUMBER_TYPE_15\"}],\"function\":[],\"enumValueType\":0}", "analyzeEnumNmberResult": "{\"element\":[{\"name\":\"\",\"value\":\"\",\"type\":\"\"},{\"name\":\"STATUS0\",\"value\":\"0\",\"type\":\"NUMBER_TYPE_16\"}],\"function\":[],\"enumValueType\":0}", "analyzeSubInterface": "{\"value\":[{\"name\":\"num1\",\"type\":\"NUMBER_TYPE_17\"},{\"name\":\"str1\",\"type\":\"string\"},{\"name\":\"nums\",\"type\":\"Array\"},{\"name\":\"strs\",\"type\":\"Array\"}],\"function\":[]}", "getFuncParaType": "{\"name\":\"v1\",\"type\":\"string\"}", "parseNamespace": "\"\\n\"", "parseEnum": "\"\\nfunction fun1(name: string, flags: EventType): EventType;\\n\"", "parseFunction": "\"\"", "parseInterface": "\"\\nfunction fun1(v: ConfigOption): void\\n\"", "analyzeStringEnum": "{\"element\":[{\"name\":\"DEFAULT\",\"value\":\"\",\"type\":\"string\"},{\"name\":\"DENIED\",\"value\":\"-1\",\"type\":\"string\"},{\"name\":\"GRANTED\",\"value\":\"2\",\"type\":\"string\"}],\"function\":[],\"enumValueType\":1}", "analyzeStringEnumResult": "{\"element\":[{\"name\":\"\",\"value\":\"\",\"type\":\"\"},{\"name\":\"STATUS1\",\"value\":\"0\",\"type\":\"string\"}],\"function\":[],\"enumValueType\":1}", "analyzeFile": "\"{\\\"exportDefault\\\":[\\\"napitest\\\"],\\\"exports\\\":[],\\\"declareType\\\":[],\\\"declareFunction\\\":[],\\\"declareNamespace\\\":[{\\\"name\\\":\\\"napitest\\\",\\\"body\\\":{\\\"exports\\\":[\\\"GrantStatus\\\",\\\"HttpStatus\\\"],\\\"enum\\\":[{\\\"name\\\":\\\"GrantStatus\\\",\\\"body\\\":{\\\"element\\\":[{\\\"name\\\":\\\"PERMISSION_DEFAULT\\\",\\\"value\\\":\\\"\\\",\\\"type\\\":\\\"string\\\"},{\\\"name\\\":\\\"PERMISSION_DENIED\\\",\\\"value\\\":\\\"-1\\\",\\\"type\\\":\\\"string\\\"},{\\\"name\\\":\\\"PERMISSION_GRANTED\\\",\\\"value\\\":\\\"2\\\",\\\"type\\\":\\\"string\\\"},{\\\"name\\\":\\\"PERMISSION_PASS\\\",\\\"value\\\":\\\"3\\\",\\\"type\\\":\\\"string\\\"}],\\\"function\\\":[],\\\"enumValueType\\\":1}},{\\\"name\\\":\\\"HttpStatus\\\",\\\"body\\\":{\\\"element\\\":[{\\\"name\\\":\\\"STATUS0\\\",\\\"value\\\":\\\"0\\\",\\\"type\\\":\\\"NUMBER_TYPE_1\\\"},{\\\"name\\\":\\\"STATUS1\\\",\\\"value\\\":\\\"500\\\",\\\"type\\\":\\\"NUMBER_TYPE_2\\\"},{\\\"name\\\":\\\"STATUS2\\\",\\\"value\\\":\\\"503\\\",\\\"type\\\":\\\"NUMBER_TYPE_3\\\"}],\\\"function\\\":[],\\\"enumValueType\\\":0}}],\\\"const\\\":[],\\\"type\\\":[],\\\"function\\\":[{\\\"name\\\":\\\"fun2\\\",\\\"type\\\":1,\\\"value\\\":[{\\\"name\\\":\\\"v2\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"numcc\\\",\\\"type\\\":\\\"Array\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"mancc\\\",\\\"type\\\":\\\"Human\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"Array\\\"},{\\\"name\\\":\\\"fun3\\\",\\\"type\\\":2,\\\"value\\\":[{\\\"name\\\":\\\"v2\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"cb\\\",\\\"type\\\":\\\"Callback\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"void\\\"},{\\\"name\\\":\\\"fun4\\\",\\\"type\\\":4,\\\"value\\\":[{\\\"name\\\":\\\"v2\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"cb\\\",\\\"type\\\":\\\"AsyncCallback\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"void\\\"},{\\\"name\\\":\\\"fun5\\\",\\\"type\\\":2,\\\"value\\\":[{\\\"name\\\":\\\"v2\\\",\\\"type\\\":\\\"boolean\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"cb\\\",\\\"type\\\":\\\"Callback\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"boolean\\\"},{\\\"name\\\":\\\"fun6\\\",\\\"type\\\":1,\\\"value\\\":[{\\\"name\\\":\\\"v2\\\",\\\"type\\\":\\\"Array\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"boolean\\\"}],\\\"interface\\\":[{\\\"name\\\":\\\"Human\\\",\\\"body\\\":{\\\"value\\\":[{\\\"name\\\":\\\"name\\\",\\\"type\\\":\\\"string\\\"},{\\\"name\\\":\\\"age\\\",\\\"type\\\":\\\"NUMBER_TYPE_4\\\"},{\\\"name\\\":\\\"isAboy\\\",\\\"type\\\":\\\"true\\\"}],\\\"function\\\":[]}},{\\\"name\\\":\\\"TestClass1\\\",\\\"body\\\":{\\\"value\\\":[{\\\"name\\\":\\\"ahuman\\\",\\\"type\\\":\\\"Human\\\"},{\\\"name\\\":\\\"num1\\\",\\\"type\\\":\\\"NUMBER_TYPE_5\\\"},{\\\"name\\\":\\\"str1\\\",\\\"type\\\":\\\"string\\\"},{\\\"name\\\":\\\"nums\\\",\\\"type\\\":\\\"Array\\\"},{\\\"name\\\":\\\"strs\\\",\\\"type\\\":\\\"Array\\\"},{\\\"name\\\":\\\"mans\\\",\\\"type\\\":\\\"Array\\\"}],\\\"function\\\":[{\\\"name\\\":\\\"if_direct\\\",\\\"type\\\":1,\\\"value\\\":[{\\\"name\\\":\\\"v1\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"v2\\\",\\\"type\\\":\\\"boolean\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"string\\\"},{\\\"name\\\":\\\"if_callback\\\",\\\"type\\\":2,\\\"value\\\":[{\\\"name\\\":\\\"v1\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"cb\\\",\\\"type\\\":\\\"Callback\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"string\\\"},{\\\"name\\\":\\\"if_async\\\",\\\"type\\\":4,\\\"value\\\":[{\\\"name\\\":\\\"v1\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false},{\\\"name\\\":\\\"cb\\\",\\\"type\\\":\\\"AsyncCallback\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"string\\\"}]}}],\\\"class\\\":[],\\\"namespace\\\":[{\\\"name\\\":\\\"Space3\\\",\\\"body\\\":{\\\"exports\\\":[],\\\"enum\\\":[],\\\"const\\\":[],\\\"type\\\":[],\\\"function\\\":[{\\\"name\\\":\\\"fun3\\\",\\\"type\\\":1,\\\"value\\\":[{\\\"name\\\":\\\"v3\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"string\\\"}],\\\"interface\\\":[{\\\"name\\\":\\\"TestClass2\\\",\\\"body\\\":{\\\"value\\\":[{\\\"name\\\":\\\"haha\\\",\\\"type\\\":\\\"NUMBER_TYPE_8\\\"}],\\\"function\\\":[]}}],\\\"class\\\":[],\\\"namespace\\\":[{\\\"name\\\":\\\"Space4\\\",\\\"body\\\":{\\\"exports\\\":[],\\\"enum\\\":[],\\\"const\\\":[],\\\"type\\\":[],\\\"function\\\":[{\\\"name\\\":\\\"fun3\\\",\\\"type\\\":1,\\\"value\\\":[{\\\"name\\\":\\\"v3\\\",\\\"type\\\":\\\"string\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"string\\\"}],\\\"interface\\\":[{\\\"name\\\":\\\"TestClass3\\\",\\\"body\\\":{\\\"value\\\":[{\\\"name\\\":\\\"hoho\\\",\\\"type\\\":\\\"NUMBER_TYPE_9\\\"}],\\\"function\\\":[{\\\"name\\\":\\\"add\\\",\\\"type\\\":1,\\\"value\\\":[{\\\"name\\\":\\\"v1\\\",\\\"type\\\":\\\"Array\\\",\\\"optional\\\":false}],\\\"ret\\\":\\\"NUMBER_TYPE_11\\\"}]}}],\\\"class\\\":[],\\\"namespace\\\":[]}}]}}]}}],\\\"declareInterface\\\":[],\\\"declareLicense\\\":[\\\"/*\\\\n* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd. \\\\n* Licensed under the Apache License, Version 2.0 (the \\\\\\\"License\\\\\\\"); \\\\n* you may not use this file except in compliance with the License. \\\\n* You may obtain a copy of the License at \\\\n*\\\\n* http://www.apache.org/licenses/LICENSE-2.0 \\\\n*\\\\n* Unless required by applicable law or agreed to in writing, software \\\\n* distributed under the License is distributed on an \\\\\\\"AS IS\\\\\\\" BASIS, \\\\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \\\\n* See the License for the specific language governing permissions and \\\\n* limitations under the License. \\\\n*/\\\"]}\"" }, "Generate": { "generateFunctionSync": "[\"\\nstruct if_callback_value_struct {\\n std::string in0;\\n \\n std::string out;\\n};\\n\\nstatic napi_value if_callback_middle(napi_env env, napi_callback_info info)\\n{\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n if (pxt->IsFailed()) {\\n napi_value err = pxt->GetError();\\n delete pxt;\\n return err;\\n }\\n TestClass1 *pInstance = (TestClass1 *)pxt->UnWarpInstance();\\n\\n struct if_callback_value_struct *vio = new if_callback_value_struct();\\n \\n pxt->SwapJs2CUtf8(pxt->GetArgv(0), vio->in0);\\n\\n pInstance->if_callback(vio->in0, vio->out);\\n\\n napi_value result = nullptr;\\n result = pxt->SwapC2JsUtf8(vio->out.c_str());\\n\\n {\\n napi_value args[1] = {result};\\n pxt->SyncCallBack(pxt->GetArgv(1), 1, args);\\n }\\n result = pxt->UndefinedValue();\\n\\n delete vio;\\n if (pxt->IsFailed()) {\\n result = pxt->GetError();\\n }\\n delete pxt; // release\\n return result;\\n}\",\"\\nbool if_callback(std::string &v1, std::string &out);\",\"\\nbool TestClass1::if_callback(std::string &v1, std::string &out)\\n{\\n return true;\\n}\\n\"]", "generateInterface": "{\"implH\":\"\\nclass ConfigOption {\\npublic:\\n bool disable;\\n std::map map1;\\n};\",\"implCpp\":\"\",\"middleBody\":\"\\nclass ConfigOption_middle {\\npublic:\\nstatic napi_value constructor(napi_env env, napi_callback_info info)\\n{\\n XNapiTool *pxt = new XNapiTool(env, info);\\n\\n ConfigOption *p = new ConfigOption();\\n\\n napi_value thisvar = pxt->WrapInstance(p, release);\\n\\n return thisvar;\\n}\\nstatic void release(void *p)\\n{\\n ConfigOption *p2 = (ConfigOption *)p;\\n delete p2;\\n}\\n\\n static napi_value getvalue_disable(napi_env env, napi_callback_info info)\\n {\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n napi_value result;\\n result = pxt->SwapC2JsBool(p->disable);\\n delete pxt;\\n return result;\\n }\\n static napi_value setvalue_disable(napi_env env, napi_callback_info info)\\n {\\n std::shared_ptr pxt = std::make_shared(env, info);\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n BOOLEAN_JS_2_C(pxt->GetArgv(0),bool,p->disable);\\n return nullptr;\\n }\\n\\n static napi_value getvalue_map1(napi_env env, napi_callback_info info)\\n {\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n napi_value result;\\n result = nullptr;\\n for (auto i = p->map1.begin(); i != p->map1.end(); i++)\\n {\\n const char * tnv1;\\n napi_value tnv2 = nullptr;\\n tnv1 = (i -> first).c_str();\\n tnv2 = pxt->SwapC2JsUtf8(i->second.c_str());\\n pxt->SetMapElement(result, tnv1, tnv2);\\n }\\n delete pxt;\\n return result;\\n }\\n static napi_value setvalue_map1(napi_env env, napi_callback_info info)\\n {\\n std::shared_ptr pxt = std::make_shared(env, info);\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n uint32_t len1=pxt->GetMapLength(pxt->GetArgv(0));\\nfor(uint32_t i1=0;i1SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(0),i1), tt1);\\n pxt->SwapJs2CUtf8(pxt->GetMapElementValue(pxt->GetArgv(0),tt1.c_str()), tt2);\\n p->map1.insert(std::make_pair(tt1, tt2));\\n}\\n return nullptr;\\n }\\n\\n};\",\"middleInit\":\"{\\n std::map> valueList;\\n valueList[\\\"disable\\\"][\\\"getvalue\\\"]=napitest::ConfigOption_middle::getvalue_disable;\\n valueList[\\\"disable\\\"][\\\"setvalue\\\"]=napitest::ConfigOption_middle::setvalue_disable;\\n valueList[\\\"map1\\\"][\\\"getvalue\\\"]=napitest::ConfigOption_middle::getvalue_map1;\\n valueList[\\\"map1\\\"][\\\"setvalue\\\"]=napitest::ConfigOption_middle::setvalue_map1;\\n std::map funcList;\\n pxt->DefineClass(\\\"ConfigOption\\\", napitest::ConfigOption_middle::constructor, valueList ,funcList);\\n}\\n\"}", "ParamGenerate": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"pxt->SwapJs2CUtf8(pxt->GetArgv(XNapiTool::ZERO), vio->in0);\\\\n\\\",\\\"valueDefine\\\":\\\"std::string& v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::string in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "returnGenerate": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::string& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::string out;\\n\",\"valuePackage\":\"result = pxt->SwapC2JsUtf8(vio->out.c_str());\\n\"}", "generateFunctionDirect": "[\"\\nstruct if_direct_value_struct {\\n std::string in0;\\n \\n std::string out;\\n};\\n\\nstatic napi_value if_direct_middle(napi_env env, napi_callback_info info)\\n{\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n if (pxt->IsFailed()) {\\n napi_value err = pxt->GetError();\\n delete pxt;\\n return err;\\n }\\n TestClass1 *pInstance = (TestClass1 *)pxt->UnWarpInstance();\\n\\n struct if_direct_value_struct *vio = new if_direct_value_struct();\\n \\n pxt->SwapJs2CUtf8(pxt->GetArgv(0), vio->in0);\\n\\n pInstance->if_direct(vio->in0, vio->out);\\n\\n napi_value result = nullptr;\\n result = pxt->SwapC2JsUtf8(vio->out.c_str());\\n\\n delete vio;\\n if (pxt->IsFailed()) {\\n result = pxt->GetError();\\n }\\n delete pxt; // release\\n return result;\\n}\",\"\\nbool if_direct(std::string &v1, std::string &out);\",\"\\nbool TestClass1::if_direct(std::string &v1, std::string &out)\\n{\\n return true;\\n}\\n\"]", "generateFunctionAsync": "[\"\\nstruct if_async_value_struct {\\n std::string in0;\\n \\n std::string out;\\n};\\n\\nstatic void if_async_execute(XNapiTool *pxt, void *data)\\n{\\n if_async_value_struct *vio = (if_async_value_struct *)data;\\n TestClass1 *pInstance = (TestClass1 *)pxt->GetAsyncInstance();\\n\\n pInstance->if_async(vio->in0, vio->out);\\n}\\n\\nstatic void if_async_complete(XNapiTool *pxt, void *data)\\n{\\n if_async_value_struct *vio = (if_async_value_struct *)data;\\n \\n napi_value result = nullptr;\\n result = pxt->SwapC2JsUtf8(vio->out.c_str());\\n \\n {\\n napi_value args[1] = {result};\\n pxt->FinishAsync(1, args);\\n }\\n\\n delete vio;\\n}\\n\\nstatic napi_value if_async_middle(napi_env env, napi_callback_info info)\\n{\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n if (pxt->IsFailed()) {\\n napi_value err = pxt->GetError();\\n delete pxt;\\n return err;\\n }\\n pxt->SetAsyncInstance(pxt->UnWarpInstance());\\n\\n struct if_async_value_struct *vio = new if_async_value_struct();\\n \\n pxt->SwapJs2CUtf8(pxt->GetArgv(0), vio->in0);\\n\\n \\n napi_value result = pxt->StartAsync(if_async_execute, vio, if_async_complete, pxt->GetArgc() == 2 ? pxt->GetArgv(1) : nullptr);\\n\\n if (pxt->IsFailed()) {\\n result = pxt->GetError();\\n }\\n return result;\\n}\",\"\\nbool if_async(std::string &v1, std::string &out);\",\"\\nbool TestClass1::if_async(std::string &v1, std::string &out)\\n{\\n return true;\\n}\\n\"]", "connectResult": "[\"\\n static napi_value getvalue_disable(napi_env env, napi_callback_info info)\\n {\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n napi_value result;\\n result = pxt->SwapC2JsBool(p->disable);\\n delete pxt;\\n return result;\\n }\\n static napi_value setvalue_disable(napi_env env, napi_callback_info info)\\n {\\n std::shared_ptr pxt = std::make_shared(env, info);\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n BOOLEAN_JS_2_C(pxt->GetArgv(0),bool,p->disable);\\n return nullptr;\\n }\\n\\n static napi_value getvalue_map1(napi_env env, napi_callback_info info)\\n {\\n XNapiTool *pxt = std::make_unique(env, info).release();\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n napi_value result;\\n result = nullptr;\\n for (auto i = p->map1.begin(); i != p->map1.end(); i++)\\n {\\n const char * tnv1;\\n napi_value tnv2 = nullptr;\\n tnv1 = (i -> first).c_str();\\n tnv2 = pxt->SwapC2JsUtf8(i->second.c_str());\\n pxt->SetMapElement(result, tnv1, tnv2);\\n }\\n delete pxt;\\n return result;\\n }\\n static napi_value setvalue_map1(napi_env env, napi_callback_info info)\\n {\\n std::shared_ptr pxt = std::make_shared(env, info);\\n ConfigOption *p = (ConfigOption *)pxt->UnWarpInstance();\\n uint32_t len2=pxt->GetMapLength(pxt->GetArgv(0));\\nfor(uint32_t i2=0;i2SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(0),i2), tt2);\\n pxt->SwapJs2CUtf8(pxt->GetMapElementValue(pxt->GetArgv(0),tt2.c_str()), tt3);\\n p->map1.insert(std::make_pair(tt2, tt3));\\n}\\n return nullptr;\\n }\\n\",\"\\n bool disable;\\n std::map map1;\",\"\",\"{\\n std::map> valueList;\\n valueList[\\\"disable\\\"][\\\"getvalue\\\"]=napitest::ConfigOption_middle::getvalue_disable;\\n valueList[\\\"disable\\\"][\\\"setvalue\\\"]=napitest::ConfigOption_middle::setvalue_disable;\\n valueList[\\\"map1\\\"][\\\"getvalue\\\"]=napitest::ConfigOption_middle::getvalue_map1;\\n valueList[\\\"map1\\\"][\\\"setvalue\\\"]=napitest::ConfigOption_middle::setvalue_map1;\\n std::map funcList;\"]", "getNamespaceResult": "{\"class\":[],\"const\":[],\"enum\":[{\"name\":\"TestClass\",\"body\":{\"element\":[{\"name\":\"name\",\"value\":\"\",\"type\":\"string\"}],\"function\":[],\"enumValueType\":0}}],\"export\":[],\"function\":[{\"name\":\"fun1\",\"type\":1,\"value\":[{\"name\":\"v\",\"type\":\"Array\"}],\"ret\":\"string\"}],\"interface\":[{\"name\":\"TestClass1\",\"body\":{\"function\":[],\"value\":[{\"name\":\"age\",\"type\":\"NUMBER_TYPE_1\"}]}}],\"namespace\":[],\"middleFunc\":null,\"implH\":null,\"implCpp\":null,\"middleInit\":null}", "generateEnumResult": "{\"implH\":\"\\nenum GrantStatus {\\nPERMISSION_DEFAULT = 0,\\nPERMISSION_DENIED = -1,\\nPERMISSION_GRANTED = 2,\\nPERMISSION_PASS = 3,\\n};\\n\",\"implCpp\":\"\"}", "generateFunction": "[\"\\nvoid fun1_execute(XNapiTool *pxt, DataPtr data)\\n{\\nvoid *data_ptr = data;\\nfun1_value_struct *vio = static_cast(data_ptr);\\n\\nfun1(vio->outErrCode, vio->out);\\n}\\n\\nvoid fun1_complete(XNapiTool *pxt, DataPtr data)\\n{\\nvoid *data_ptr = data;\\nfun1_value_struct *vio = static_cast(data_ptr);\\nnapi_value result = nullptr;\\nresult = pxt->SwapC2JsUtf8(vio->out.c_str());\\n\\nnapi_value errCodeResult = nullptr;\\nnapi_value napiErrCode = nullptr;\\nnapiErrCode = NUMBER_C_2_JS(pxt, vio->outErrCode);\\npxt->SetValueProperty(errCodeResult, \\\"code\\\", napiErrCode);\\n{\\nnapi_value args[XNapiTool::TWO] = {errCodeResult, result};\\npxt->FinishAsync(XNapiTool::TWO, args);\\n}\\n\\ndelete vio;\\n}\\n\\nnapi_value fun1_middle(napi_env env, napi_callback_info info)\\n{\\nXNapiTool *pxt = std::make_unique(env, info).release();\\nif (pxt->IsFailed()) {\\nnapi_value err = pxt->GetError();\\ndelete pxt;\\nreturn err;\\n}\\n\\nstruct fun1_value_struct *vio = new fun1_value_struct();\\n\\nnapi_value result = pxt->StartAsync(fun1_execute, reinterpret_cast(vio), fun1_complete,\\npxt->GetArgc() == XNapiTool::ONE? pxt->GetArgv(XNapiTool::ZERO) : nullptr);\\nreturn result;\\n}\",\"\\nbool fun1(uint32_t& outErrCode, std::string& out);\",\"\\nbool fun1(uint32_t& outErrCode, std::string& out)\\n{\\n\\nreturn true;\\n}\\n\",\"\\nstruct fun1_value_struct {\\nuint32_t outErrCode = 0;\\nstd::string out;\\n\\n};\\n\\nvoid fun1_execute(XNapiTool *pxt, DataPtr data);\\nvoid fun1_complete(XNapiTool *pxt, DataPtr data);\\nnapi_value fun1_middle(napi_env env, napi_callback_info info);\\n\"]", "paramGenerateArray": "{\"valueCheckout\":\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\npxt->SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\nvio->in0.push_back(tt);\\n}\\n\",\"valueDefine\":\"std::vector&v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::vector in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "paramGenerateMap": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\nstd::string tt;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\npxt->SwapJs2CUtf8(pxt->GetMapElementValue(pxt->GetArgv(XNapiTool::ZERO), tt.c_str()), tt);\\n\\nvio->in0.insert(std::make_pair(tt, tt));\\n}\\n\",\"valueDefine\":\"std::map& v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::map in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "paramGenerateCommon": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"pxt->SwapJs2CUtf8(pxt->GetArgv(XNapiTool::ZERO), vio->in0);\\n\",\"valueDefine\":\"std::string& v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::string in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "paramGenerateAny": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"vio->in0_type = pxt->GetAnyType(pxt->GetArgv(XNapiTool::ZERO));\\npxt->SetAnyValue(vio->in0_type, pxt->GetArgv(XNapiTool::ZERO), vio->in0);\\n\",\"valueDefine\":\"std::any &v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::any in0;\\nstd::string in0_type;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "paramGenerateCallBack": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"\",\"valueFill\":\"\",\"valueIn\":\"\",\"valueOut\":\"\",\"valuePackage\":\"\",\"callback\":{\"type\":\"string\",\"offset\":\"1\",\"returnType\":\"void\",\"optional\":false,\"isAsync\":false}}", "paramGenerateUnion": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"vio->in0_type = pxt->GetUnionType(pxt->GetArgv(XNapiTool::ZERO));\\nif (vio->in0_type == \\\"string\\\") {\\nstd::string union_string;\\npxt->SwapJs2CUtf8(pxt->GetArgv(XNapiTool::ZERO), union_string);\\nvio->in0 = union_string;\\n}\\nif (vio->in0_type == \\\"number\\\") {\\nstd::uint32_t union_number;\\nNUMBER_JS_2_C(pxt->GetArgv(XNapiTool::ZERO), NUMBER_TYPE_1, union_number);\\nvio->in0 = union_number;\\n}\\nif (vio->in0_type == \\\"boolean\\\") {\\nbool union_boolean;\\nBOOLEAN_JS_2_C(pxt->GetArgv(XNapiTool::ZERO), bool, union_boolean);\\n\\nvio->in0 = union_boolean;\\n}\\n\",\"valueDefine\":\"std::any &v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::any in0;\\nstd::string in0_type;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "paramGenerateObject": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\nstd::any tt;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\nnapi_value valueObj = pxt->GetMapElementValue(pxt->GetArgv(XNapiTool::ZERO), tt.c_str());\\nstd::string valueObjType = pxt->GetAnyType(valueObj);\\nif (valueObjType == \\\"string\\\") {\\nstd::string tt;\\npxt->SwapJs2CUtf8(valueObj, tt);\\ntt = tt;\\n} else if (valueObjType == \\\"boolean\\\") {\\nbool tt;\\ntt = pxt->SwapJs2CBool(valueObj);\\ntt = tt;\\n} else if (valueObjType == \\\"number\\\") {\\nNUMBER_JS_2_C(valueObj, NUMBER_TYPE_, tt);\\n} else if (valueObjType == \\\"arr_string\\\") {\\nuint32_t len = pxt->GetArrayLength(valueObj);\\nstd::vector arr;\\nfor(uint32_t i = 0; i < len; i++) {\\nnapi_value arr_value_result;\\nnapi_get_element(env, valueObj, i, &arr_value_result);\\nstd::string tt;\\npxt->SwapJs2CUtf8(arr_value_result, tt);\\narr.push_back(tt);\\n}\\ntt = arr;\\n} else if (valueObjType == \\\"arr_boolean\\\") {\\nuint32_t len = pxt->GetArrayLength(valueObj);\\nstd::vector arr;\\nfor(uint32_t i = 0; i < len; i++) {\\nnapi_value arr_value_result;\\nnapi_get_element(env, valueObj, i, &arr_value_result);\\nbool tt;\\ntt = pxt->SwapJs2CBool(arr_value_result);\\narr.push_back(tt);\\n}\\ntt = arr;\\n} else if (valueObjType == \\\"arr_number\\\") {\\nuint32_t len = pxt->GetArrayLength(valueObj);\\nstd::vector arr;\\nfor(uint32_t i = 0; i < len; i++) {\\nnapi_value arr_value_result;\\nNUMBER_TYPE_ tt;\\nnapi_get_element(env, valueObj, i, &arr_value_result);\\nNUMBER_JS_2_C(arr_value_result, NUMBER_TYPE_, tt);\\narr.push_back(tt);\\n}\\ntt = arr;\\n\\n} else if (valueObjType == \\\"map_string\\\" || valueObjType == \\\"map_number\\\" || valueObjType == \\\"map_boolean\\\") {\\nnapi_value obj_name_value;\\nnapi_value obj_name_result;\\nnapi_valuetype obj_name_type;\\nnapi_get_property_names (env, valueObj, &obj_name_value);\\nuint32_t ret;\\nnapi_get_array_length(env, obj_name_value, &ret);\\nstd::vector anyValue;\\nfor(uint32_t i = 0; i < ret; i++) {\\nnapi_get_element (env, obj_name_value, i, &obj_name_result);\\nnapi_typeof(env, obj_name_result, &obj_name_type);\\nif (obj_name_type == napi_string) {\\nnapi_value obj_value;\\nnapi_valuetype obj_value_type;\\nstd::string obj_name_string;\\npxt->SwapJs2CUtf8(obj_name_result, obj_name_string);\\nnapi_get_named_property (env, valueObj, obj_name_string.c_str(), &obj_value);\\nnapi_typeof(env, obj_value, &obj_value_type);\\nstd::map anyValueMap;\\nif (obj_value_type == napi_string) {\\nstd::string tt;\\npxt->SwapJs2CUtf8(obj_value, tt);\\nanyValueMap.insert(std::make_pair(obj_name_string, tt));\\nanyValue.push_back(anyValueMap);\\n} else if (obj_value_type == napi_number) {\\nNUMBER_TYPE_ tt;\\nNUMBER_JS_2_C(obj_value, NUMBER_TYPE_, tt );\\nanyValueMap.insert(std::make_pair(obj_name_string, tt));\\nanyValue.push_back(anyValueMap);\\n} else if (obj_value_type == napi_boolean) {\\nbool tt;\\ntt = pxt->SwapJs2CBool(obj_value);\\nanyValueMap.insert(std::make_pair(obj_name_string, tt));\\nanyValue.push_back(anyValueMap);\\n}\\n}\\n}\\ntt = anyValue;\\n\\n}\\n\\nvio->in0.insert(std::make_pair(tt, tt));\\n}\\n\",\"valueDefine\":\"std::map &v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::map in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "mapTempleteFunc": "\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(0));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string kk1;\\nstd::string kk2;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(0), i), kk1);\\npxt->SwapJs2CUtf8(pxt->GetMapElementValue(pxt->GetArgv(0), kk1.c_str()), kk2);\\n\\nvio->in0.insert(std::make_pair(kk1, kk2));\\n}\"", "anyTempleteFunc": "\"vio->in0_type = pxt->GetAnyType(pxt->GetArgv(XNapiTool::ZERO));\\npxt->SetAnyValue(vio->in0_type, pxt->GetArgv(XNapiTool::ZERO), vio->in0);\\n\"", "objectTempleteFunc": "\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\nstd::any tt;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\nnapi_value valueObj = pxt->GetMapElementValue(pxt->GetArgv(XNapiTool::ZERO), tt.c_str());\\nstd::string valueObjType = pxt->GetAnyType(valueObj);\\nif (valueObjType == \\\"string\\\") {\\nstd::string tt;\\npxt->SwapJs2CUtf8(valueObj, tt);\\ntt = tt;\\n} else if (valueObjType == \\\"boolean\\\") {\\nbool tt;\\ntt = pxt->SwapJs2CBool(valueObj);\\ntt = tt;\\n} else if (valueObjType == \\\"number\\\") {\\nNUMBER_JS_2_C(valueObj, NUMBER_TYPE_, tt);\\n} else if (valueObjType == \\\"arr_string\\\") {\\nuint32_t len = pxt->GetArrayLength(valueObj);\\nstd::vector arr;\\nfor(uint32_t i = 0; i < len; i++) {\\nnapi_value arr_value_result;\\nnapi_get_element(env, valueObj, i, &arr_value_result);\\nstd::string tt;\\npxt->SwapJs2CUtf8(arr_value_result, tt);\\narr.push_back(tt);\\n}\\ntt = arr;\\n} else if (valueObjType == \\\"arr_boolean\\\") {\\nuint32_t len = pxt->GetArrayLength(valueObj);\\nstd::vector arr;\\nfor(uint32_t i = 0; i < len; i++) {\\nnapi_value arr_value_result;\\nnapi_get_element(env, valueObj, i, &arr_value_result);\\nbool tt;\\ntt = pxt->SwapJs2CBool(arr_value_result);\\narr.push_back(tt);\\n}\\ntt = arr;\\n} else if (valueObjType == \\\"arr_number\\\") {\\nuint32_t len = pxt->GetArrayLength(valueObj);\\nstd::vector arr;\\nfor(uint32_t i = 0; i < len; i++) {\\nnapi_value arr_value_result;\\nNUMBER_TYPE_ tt;\\nnapi_get_element(env, valueObj, i, &arr_value_result);\\nNUMBER_JS_2_C(arr_value_result, NUMBER_TYPE_, tt);\\narr.push_back(tt);\\n}\\ntt = arr;\\n\\n} else if (valueObjType == \\\"map_string\\\" || valueObjType == \\\"map_number\\\" || valueObjType == \\\"map_boolean\\\") {\\nnapi_value obj_name_value;\\nnapi_value obj_name_result;\\nnapi_valuetype obj_name_type;\\nnapi_get_property_names (env, valueObj, &obj_name_value);\\nuint32_t ret;\\nnapi_get_array_length(env, obj_name_value, &ret);\\nstd::vector anyValue;\\nfor(uint32_t i = 0; i < ret; i++) {\\nnapi_get_element (env, obj_name_value, i, &obj_name_result);\\nnapi_typeof(env, obj_name_result, &obj_name_type);\\nif (obj_name_type == napi_string) {\\nnapi_value obj_value;\\nnapi_valuetype obj_value_type;\\nstd::string obj_name_string;\\npxt->SwapJs2CUtf8(obj_name_result, obj_name_string);\\nnapi_get_named_property (env, valueObj, obj_name_string.c_str(), &obj_value);\\nnapi_typeof(env, obj_value, &obj_value_type);\\nstd::map anyValueMap;\\nif (obj_value_type == napi_string) {\\nstd::string tt;\\npxt->SwapJs2CUtf8(obj_value, tt);\\nanyValueMap.insert(std::make_pair(obj_name_string, tt));\\nanyValue.push_back(anyValueMap);\\n} else if (obj_value_type == napi_number) {\\nNUMBER_TYPE_ tt;\\nNUMBER_JS_2_C(obj_value, NUMBER_TYPE_, tt );\\nanyValueMap.insert(std::make_pair(obj_name_string, tt));\\nanyValue.push_back(anyValueMap);\\n} else if (obj_value_type == napi_boolean) {\\nbool tt;\\ntt = pxt->SwapJs2CBool(obj_value);\\nanyValueMap.insert(std::make_pair(obj_name_string, tt));\\nanyValue.push_back(anyValueMap);\\n}\\n}\\n}\\ntt = anyValue;\\n\\n}\\n\\nvio->in0.insert(std::make_pair(tt, tt));\\n}\\n\"", "unionTempleteFunc": "\"vio->in0_type = pxt->GetUnionType(pxt->GetArgv(XNapiTool::ZERO));\\nif (vio->in0_type == \\\"string\\\") {\\nstd::string union_string;\\npxt->SwapJs2CUtf8(pxt->GetArgv(XNapiTool::ZERO), union_string);\\nvio->in0 = union_string;\\n}\\nif (vio->in0_type == \\\"number\\\") {\\nstd::uint32_t union_number;\\nNUMBER_JS_2_C(pxt->GetArgv(XNapiTool::ZERO), NUMBER_TYPE_1, union_number);\\nvio->in0 = union_number;\\n}\\nif (vio->in0_type == \\\"boolean\\\") {\\nbool union_boolean;\\nBOOLEAN_JS_2_C(pxt->GetArgv(XNapiTool::ZERO), bool, union_boolean);\\n\\nvio->in0 = union_boolean;\\n}\\n\"", "generateNamespace":"{\"implH\":\"\\nnamespacenapitest{\\nnamespacenapitest_interface{\\nclassTestInterface;\\r\\nenumclassTestEnum{\\nname=0,\\n};\\n\\nclassTestInterface{\\npublic:\\nNUMBER_TYPE_1age;\\n\\n};\\n\\nboolfun1(std::vector&v,std::string&out);\\n}\\n}\",\"implCpp\":\"\\nnamespacenapitest{\\nnamespacenapitest_interface{\\n\\nboolfun1(std::vector&v,std::string&out)\\n{\\n\\nreturntrue;\\n}\\n\\n}\\n}\",\"middleBody\":\"\\nnamespacenapitest{\\nnamespacenapitest_interface{\\nstd::mapenumMapTestEnum;\\n\\nnapi_valueTestInterface_middle::constructor(napi_envenv,napi_callback_infoinfo)\\n{\\nXNapiTool*pxt=newXNapiTool(env,info);\\nnapi_statusstatus;\\nsize_targc;\\nstatus=napi_get_cb_info(env,info,&argc,nullptr,nullptr,nullptr);\\nif(argc>0){\\nnapi_valueargs[argc];\\nstatus=napi_get_cb_info(env,info,&argc,args,nullptr,nullptr);\\nif(status!=napi_ok){\\nreturnnullptr;\\n}\\nstructconstructor_value_struct*vio=newconstructor_value_struct();\\n\\nTestInterface*p=newTestInterface();\\nnapi_valuethisvar=pxt->WrapInstance(reinterpret_cast(p),TestInterface_middle::release);\\ndeletevio;\\nreturnthisvar;\\n}else{\\nTestInterface*p=newTestInterface();\\nnapi_valuethisvar=pxt->WrapInstance(reinterpret_cast(p),TestInterface_middle::release);\\nreturnthisvar;\\n}\\n}\\nvoidTestInterface_middle::release(DataPtrp)\\n{\\nvoid*dataPtr=p;\\nTestInterface*p2=static_cast(dataPtr);\\ndeletep2;\\n}\\n\\nnapi_valueTestInterface_middle::getvalue_age(napi_envenv,napi_callback_infoinfo)\\n{\\nXNapiTool*pxt=std::make_unique(env,info).release();\\nvoid*instPtr=pxt->UnWarpInstance();\\nTestInterface*p=static_cast(instPtr);\\nnapi_valueresult=nullptr;\\nresult=NUMBER_C_2_JS(pxt,p->age);\\n\\ndeletepxt;\\nreturnresult;\\n}\\nnapi_valueTestInterface_middle::setvalue_age(napi_envenv,napi_callback_infoinfo)\\n{\\nstd::shared_ptrpxt=std::make_shared(env,info);\\nvoid*instPtr=pxt->UnWarpInstance();\\nTestInterface*p=static_cast(instPtr);\\nNUMBER_JS_2_C(pxt->GetArgv(XNapiTool::ZERO),NUMBER_TYPE_1,p->age);\\nreturnnullptr;\\n}\\n\\nnapi_valuefun1_middle(napi_envenv,napi_callback_infoinfo)\\n{\\nXNapiTool*pxt=std::make_unique(env,info).release();\\nif(pxt->IsFailed()){\\nnapi_valueerr=pxt->GetError();\\ndeletepxt;\\nreturnerr;\\n}\\n\\nstructfun1_value_struct*vio=newfun1_value_struct();\\nuint32_tlen=pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor(uint32_ti=0;iSwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(XNapiTool::ZERO),i),tt);\\nvio->in0.push_back(tt);\\n}\\n\\nfun1(vio->in0,vio->out);\\nnapi_valueresult=nullptr;\\nresult=pxt->SwapC2JsUtf8(vio->out.c_str());\\n\\ndeletevio;\\ndeletepxt;//release\\nreturnresult;\\n}\\n}\\n}\",\"middleInit\":\"napitest::napitest_interface::enumMapTestEnum[\\\"name\\\"]=0;\\npxt->CreateEnumObject(\\\"TestEnum\\\",napitest::napitest_interface::enumMapTestEnum);\\n{\\nstd::map>valueList;\\nvalueList[\\\"age\\\"][\\\"getvalue\\\"]=napitest::napitest_interface::TestInterface_middle::getvalue_age;\\nvalueList[\\\"age\\\"][\\\"setvalue\\\"]=napitest::napitest_interface::TestInterface_middle::setvalue_age;\\nstd::mapfuncList;\\npxt->DefineClass(\\\"TestInterface\\\",napitest::napitest_interface::TestInterface_middle::constructor,\\nvalueList,funcList);\\n}\\npxt->DefineFunction(\\\"fun1\\\",napitest::napitest_interface::fun1_middle);\\n\",\"middleH\":\"\\nnamespacenapitest{\\nnamespacenapitest_interface{\\nclassTestInterface_middle{\\npublic:\\nstructconstructor_value_struct{\\n};\\nstaticnapi_valueconstructor(napi_envenv,napi_callback_infoinfo);\\nstaticvoidrelease(DataPtrp);\\n\\nstaticnapi_valuegetvalue_age(napi_envenv,napi_callback_infoinfo);\\nstaticnapi_valuesetvalue_age(napi_envenv,napi_callback_infoinfo);\\n\\n};\\n\\nstructfun1_value_struct{\\nstd::vectorin0;\\nstd::stringout;\\n\\n};\\n\\nnapi_valuefun1_middle(napi_envenv,napi_callback_infoinfo);\\n\\n}\\n}\"}", "ParamGenerate1": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"NUMBER_JS_2_C(pxt->GetArgv(XNapiTool::ZERO), NUMBER_TYPE_1, vio->in0);\\\\n\\\",\\\"valueDefine\\\":\\\"NUMBER_TYPE_1& v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nNUMBER_TYPE_1 in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate2": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"BOOLEAN_JS_2_C(pxt->GetArgv(XNapiTool::ZERO), bool, vio->in0);\\\\n\\\\n\\\",\\\"valueDefine\\\":\\\"bool& v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nbool in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate3": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\\\nfor (uint32_t i = 0; i < len; i++) {\\\\nstd::string tt;\\\\npxt->SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\\\nvio->in0.push_back(tt);\\\\n}\\\\n\\\",\\\"valueDefine\\\":\\\"std::vector&v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::vector in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate4": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\\\nfor (uint32_t i = 0; i < len; i++) {\\\\nbool tt;\\\\ntt = pxt->SwapJs2CBool(pxt->GetArrayElement(pxt->GetArgv(XNapiTool::ZERO), i));\\\\nvio->in0.push_back(tt);\\\\n}\\\\n\\\",\\\"valueDefine\\\":\\\"std::vector&v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::vector in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate5": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\\\nfor (uint32_t i = 0; i < len; i++) {\\\\nnumber tt;\\\\n[replace_swap]\\\\nvio->in0.push_back(tt);\\\\n}\\\\n\\\",\\\"valueDefine\\\":\\\"std::vector&v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::vector in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate6": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\\\nfor (uint32_t i = 0; i < len; i++) {\\\\nstd::string tt;\\\\npxt->SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\\\nvio->in0.push_back(tt);\\\\n}\\\\n\\\",\\\"valueDefine\\\":\\\"std::vector&v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::vector in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate7": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\\\nfor (uint32_t i = 0; i < len; i++) {\\\\nbool tt;\\\\ntt = pxt->SwapJs2CBool(pxt->GetArrayElement(pxt->GetArgv(XNapiTool::ZERO), i));\\\\nvio->in0.push_back(tt);\\\\n}\\\\n\\\",\\\"valueDefine\\\":\\\"std::vector&v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::vector in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate8": "\"{\\\"optionalParamDestory\\\":\\\"\\\",\\\"valueCheckout\\\":\\\"uint32_t len = pxt->GetArrayLength(pxt->GetArgv(XNapiTool::ZERO));\\\\nfor (uint32_t i = 0; i < len; i++) {\\\\nnumber tt;\\\\n[replace_swap]\\\\nvio->in0.push_back(tt);\\\\n}\\\\n\\\",\\\"valueDefine\\\":\\\"std::vector&v\\\",\\\"valueFill\\\":\\\"vio->in0\\\",\\\"valueIn\\\":\\\"\\\\nstd::vector in0;\\\",\\\"valueOut\\\":\\\"\\\",\\\"valuePackage\\\":\\\"\\\"}\"", "ParamGenerate9": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\nstd::string tt;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\npxt->SwapJs2CUtf8(pxt->GetMapElementValue(pxt->GetArgv(XNapiTool::ZERO), tt.c_str()), tt);\\n\\nvio->in0.insert(std::make_pair(tt, tt));\\n}\\n\",\"valueDefine\":\"std::map& v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::map in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "ParamGenerate10": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\nNUMBER_TYPE_1 tt;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\nNUMBER_JS_2_C(pxt->GetMapElementValue(pxt->GetArgv(XNapiTool::ZERO), tt.c_str()), NUMBER_TYPE_1, tt);\\n\\nvio->in0.insert(std::make_pair(tt, tt));\\n}\\n\",\"valueDefine\":\"std::map& v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::map in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "ParamGenerate11": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"uint32_t len = pxt->GetMapLength(pxt->GetArgv(XNapiTool::ZERO));\\nfor (uint32_t i = 0; i < len; i++) {\\nstd::string tt;\\nbool tt;\\npxt->SwapJs2CUtf8(pxt->GetMapElementName(pxt->GetArgv(XNapiTool::ZERO), i), tt);\\ntt = pxt->SwapJs2CBool(pxt->GetMapElementValue(pxt->GetArgv(XNapiTool::ZERO), tt.c_str()));\\n\\nvio->in0.insert(std::make_pair(tt, tt));\\n}\\n\",\"valueDefine\":\"std::map& v\",\"valueFill\":\"vio->in0\",\"valueIn\":\"\\nstd::map in0;\",\"valueOut\":\"\",\"valuePackage\":\"\"}", "returnGenerate1": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"NUMBER_TYPE_1& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"NUMBER_TYPE_1 out;\\n\",\"valuePackage\":\"result = NUMBER_C_2_JS(pxt, vio->out);\\n\"}", "returnGenerate2": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"bool& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"bool out;\\n\",\"valuePackage\":\"result = pxt->SwapC2JsBool(vio->out);\\n\"}", "returnGenerate3": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::vector& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valuePackage\":\"pxt->CreateArray(result);\\nuint32_t outLen1 = vio->out.size();\\nfor (uint32_t i = 0; i < outLen1; i++) {\\nnapi_value tnv = nullptr;\\ntnv = pxt->SwapC2JsUtf8(vio->out[i].c_str());\\npxt->SetArrayElement(result, i, tnv);\\n}\"}", "returnGenerate4": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::vector& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valuePackage\":\"pxt->CreateArray(result);\\nuint32_t outLen1 = vio->out.size();\\nfor (uint32_t i = 0; i < outLen1; i++) {\\nnapi_value tnv = nullptr;\\ntnv = NUMBER_C_2_JS(pxt, vio->out[i]);\\npxt->SetArrayElement(result, i, tnv);\\n}\"}", "returnGenerate5": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::vector& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valuePackage\":\"pxt->CreateArray(result);\\nuint32_t outLen1 = vio->out.size();\\nfor (uint32_t i = 0; i < outLen1; i++) {\\nnapi_value tnv = nullptr;\\ntnv = pxt->SwapC2JsBool(vio->out[i]);\\npxt->SetArrayElement(result, i, tnv);\\n}\"}", "returnGenerate6": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::vector& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valuePackage\":\"pxt->CreateArray(result);\\nuint32_t outLen1 = vio->out.size();\\nfor (uint32_t i = 0; i < outLen1; i++) {\\nnapi_value tnv = nullptr;\\ntnv = pxt->SwapC2JsUtf8(vio->out[i].c_str());\\npxt->SetArrayElement(result, i, tnv);\\n}\"}", "returnGenerate7": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::vector& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valuePackage\":\"pxt->CreateArray(result);\\nuint32_t outLen1 = vio->out.size();\\nfor (uint32_t i = 0; i < outLen1; i++) {\\nnapi_value tnv = nullptr;\\ntnv = pxt->SwapC2JsBool(vio->out[i]);\\npxt->SetArrayElement(result, i, tnv);\\n}\"}", "returnGenerate8": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::vector& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valuePackage\":\"pxt->CreateArray(result);\\nuint32_t outLen1 = vio->out.size();\\nfor (uint32_t i = 0; i < outLen1; i++) {\\nnapi_value tnv = nullptr;\\ntnv = NUMBER_C_2_JS(pxt, vio->out[i]);\\npxt->SetArrayElement(result, i, tnv);\\n}\"}", "returnGenerate9": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::map& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::map out;\",\"valuePackage\":\"result = nullptr;\\nfor (auto i = vio->out.begin(); i != vio->out.end(); i++) {\\nconst char * tnv;\\nnapi_value tnv = nullptr;\\ntnv = (i -> first).c_str();\\ntnv = pxt->SwapC2JsUtf8(i->second.c_str());\\npxt->SetMapElement(result, tnv, tnv);\\n}\"}", "returnGenerate10": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::map& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::map out;\",\"valuePackage\":\"result = nullptr;\\nfor (auto i = vio->out.begin(); i != vio->out.end(); i++) {\\nconst char * tnv;\\nnapi_value tnv = nullptr;\\ntnv = (i -> first).c_str();\\ntnv = NUMBER_C_2_JS(pxt, i->second);\\npxt->SetMapElement(result, tnv, tnv);\\n}\"}", "returnGenerate11": "{\"optionalParamDestory\":\"\",\"valueCheckout\":\"\",\"valueDefine\":\"std::map& out\",\"valueFill\":\"vio->out\",\"valueIn\":\"\",\"valueOut\":\"std::map out;\",\"valuePackage\":\"result = nullptr;\\nfor (auto i = vio->out.begin(); i != vio->out.end(); i++) {\\nconst char * tnv;\\nnapi_value tnv = nullptr;\\ntnv = (i -> first).c_str();\\ntnv = pxt->SwapC2JsBool(i->second);\\npxt->SetMapElement(result, tnv, tnv);\\n}\"}" }, "Generate1": { "ParamGenerate": "{\"valueIn\":\"\\n NUMBER_TYPE_1 in0;\",\"valueOut\":\"\",\"valueCheckout\":\"NUMBER_JS_2_C(pxt->GetArgv(0),NUMBER_TYPE_1,vio->in0);\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"NUMBER_TYPE_1 &a\"}", "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"NUMBER_TYPE_1 out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n result = NUMBER_C_2_JS(pxt, vio->out);\",\"valueDefine\":\"NUMBER_TYPE_1 &out\"}", "ParamGenerateBoolean": "{\"valueIn\":\"\\n bool in0;\",\"valueOut\":\"\",\"valueCheckout\":\"BOOLEAN_JS_2_C(pxt->GetArgv(0),bool,vio->in0);\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"bool &a\"}", "returnGenerateBool": "{\"valueIn\":\"\",\"valueOut\":\"bool out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n result = pxt->SwapC2JsBool(vio->out);\",\"valueDefine\":\"bool &out\"}" }, "Generate2": { "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n uint32_t len1=vio->out.size();\\n for(uint32_t i=0;iSwapC2JsUtf8(vio->out[i].c_str());\\n pxt->SetArrayElement(result, i, tnv1);\\n }\",\"valueDefine\":\"std::vector &out\"}", "ParamGenerate": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len11=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i11=0;i11SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(0),i11), tt11);\\n vio->in0.push_back(tt11);\\n\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}", "returnGenerateNum": "{\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n \",\"valueDefine\":\"std::vector &out\"}" }, "Generate3": { "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n \",\"valueDefine\":\"std::vector &out\"}", "ParamGenerate": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len12=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i12=0;i12SwapJs2CBool(pxt->GetArrayElement(pxt->GetArgv(0),i12));\\n vio->in0.push_back(tt12);\\n\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}", "ParamGenerateNum": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len13=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i13=0;i13in0.push_back(tt13);\\n\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}" }, "retJson2": { "ParamGenerate": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len16=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i16=0;i16SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(0),i16), tt16);\\n vio->in0.push_back(tt16);\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}" }, "Generate4": { "ParamGenerate": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len14=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i14=0;i14SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(0),i14), tt14);\\n vio->in0.push_back(tt14);\\n\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}", "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n uint32_t len1=vio->out.size();\\n for(uint32_t i=0;iSwapC2JsUtf8(vio->out[i].c_str());\\n pxt->SetArrayElement(result, i, tnv1);\\n }\",\"valueDefine\":\"std::vector &out\"}" }, "Generate5": { "ParamGenerate": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len15=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i15=0;i15SwapJs2CBool(pxt->GetArrayElement(pxt->GetArgv(0),i15));\\n vio->in0.push_back(tt15);\\n\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}", "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n \",\"valueDefine\":\"std::vector &out\"}", "ParamGenerateNum": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len16=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i16=0;i16in0.push_back(tt16);\\n\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}" }, "Generate6": { "ParamGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"\",\"valuePackage\":\"\",\"valueDefine\":\"\"}", "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"std::vector out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n \",\"valueDefine\":\"std::vector &out\"}" }, "Generate7": { "ParamGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"\",\"valuePackage\":\"\",\"valueDefine\":\"\"}", "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n undefined\",\"valueDefine\":\"\"}" }, "Generate8": { "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n undefined\",\"valueDefine\":\"\"}" }, "ParamIn": { "removeExplains": "/*\n* Copyright \n*/\ndeclare namespace napitest {\n //test remove explain\n function fun1(v1: string):void;\n}\n\nexport default napitest;\n", "analyzeSubInterface": "\nnum1: number;\nstr1: string;\nbool1: boolean;\nnums: Array;\nstrs: Array;\nbools: Array;\nmapNum: Map;\nmapStr: Map;\nmapBool: Map;\nmapNum2: {[key: string]: number};\nmapStr2: {[key: string]: string};\nmapBool2: {[key: string]: boolean};\nif_direct(v1: string, v2: boolean, v3: number): string;\nif_callback(v1: string, cb: Callback): string;\nif_async(v1: string, cb: AsyncCallback): string;\n", "parseEnum": "export enum GrantStatus {\nPERMISSION_DEFAULT = \"\",\nPERMISSION_DENIED = \"-1\",\nPERMISSION_GRANTED = \"2\",\nPERMISSION_PASS = \"3\",\n}\n", "parseInterface": "interface ConfigOption {\ndisable: boolean;\nmaxStorage: string;\n}\nfunction fun1(v: ConfigOption): void\n", "analyzeInterface": "num1: number;\nstr1: string;\nbool1: boolean;\nnums: Array;\nstrs: Array;\nbools: Array;\nmapNum: Map;\nmapStr: Map;\nmapBool: Map;\nmapNum2: {[key: string]: number};\nmapStr2: {[key: string]: string};\nmapBool2: {[key: string]: boolean};\nif_direct(v1: string, v2: boolean, v3: number): string;\nif_callback(v1: string, cb: Callback): string;\nif_async(v1: string, cb: AsyncCallback): string;\n", "analyzeNamespace": "\nnamespace Space3 {\nconst MAX_KEY_LENGTH : string;\nexport enum Entity {\nENTITY_DEFAULT = \"entity.system.default\",\n}\nclass TestClass {\nstatic $fun1(v: Entity): boolean;\n}\ninterface TestClass2 {\nanimal: string;\nfix(v1: string): string;\n}\nfunction fun2(v3: string): string;\nnamespace Space4 {\nfunction fun3(): void;\n}\n}\n", "getLicense": "/*\n* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd. \n*/\ndeclare namespace napitest {\n function fun1(v1: { [key: string]: Array }):void;\n}\n\nexport default napitest;\n", "checkOutBody": "declare namespace napitest {function fun1(v1: { [key: string]: Array }):void;}export default napitest;", "removeEmptyLine": "declare namespace napitest {\n \n function fun1(v1: string):void;\n \n}\n\nexport default napitest;\n", "parseNamespace": "namespace Space3 {\nfunction fun3(v3: string): string;\ninterface TestClass2 {\nhaha: number;\n}\n}\n", "parseClass": "class Animal {\naniName: string;\nsize: number;\nisTag: false;\nstatic getAnimalType(aniId: number): string;\nsetAnimalId(id: number): void;\n}\nclass Cat extends Animal {\ncatName:string;\nstatic getCatType(catId: number): string;\n}\nfunction funcTest(v: Cat): string;\n", "parseType": "type Plant = {\ntomato: string;\ntomatoId: number;\nisTomato: boolean;\n}\ntype MyString = string;\ntype MyNumberType = number;\ntype MyBool = boolean;\ntype MyUnion = string | number | boolean;\ntype MyEnumType = 'keyup' | 'keydown';\n" }, "ParamOut": { "parseClass": "\"\\nclass Cat extends Animal {\\ncatName:string;\\nstatic getCatType(catId: number): string;\\n}\\nfunction funcTest(v: Cat): string;\\n\"", "parseType": "\"\\ntype MyString = string;\\ntype MyNumberType = number;\\ntype MyBool = boolean;\\ntype MyUnion = string | number | boolean;\\ntype MyEnumType = 'keyup' | 'keydown';\\n\"" } }