/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/xservice@0.0.11/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
#!/usr/bin/env node
var program=require("commander"),Path=require("path"),Mustache=require("Mustache"),YAML=require("js-yaml");function toJsonString(e){return YAML.safeLoad(e)}function start(e){const a=require("fs");let r=new Array;"yaml"==program.type?a.readdirSync(e).forEach((t=>{if(t.includes("yaml")||t.includes("yml")){let n=Path.join(e,t),o=toJsonString(a.readFileSync(n,"utf8"));r.push(o)}})):a.readdirSync(e).forEach((t=>{if(t.includes("json")){let n=Path.join(e,t),o=a.readFileSync(n,"utf8"),i=JSON.parse(o);r.push(i)}}));var t=[];console.log("Start generating..."),console.log("[input] -> "+e),console.log("[package] -> "+program.package),console.log("---------------------------");for(var n=0;n<r.length;n++)console.log(r[n]),formate_data(r[n]),gen_java(r[n]),gen_oc(r[n]),gen_dart(r[n]),t.push({name:r[n].name,service_dart_file_name:dart_file_name(r[n].name)}),console.log("Generating "+r[n].name+" success!"),console.log("============================= "+r[n].name);r.pkg_name=program.package,r.services=t,console.log("Generating loaders"),gen_loader(r),console.log("Generating Fnished. All success!"),console.log("!!!Please find the output under directory "+program.output)}function default_dart_value(e){var a={int:"0",double:"0.0",bool:"false",String:'""'}[e];return a||(e.includes("List")?"[]":e.includes("Map")?"{}":a)}function formate_data(e){e.service_name=e.name,e.service_dart_file_name=dart_file_name(e.name);for(var a=[],r=[],t=0;t<e.messages.length;t++){var n=e.messages[t];n.service_dart_file_name=e.service_dart_file_name,n.msg_dart_file_name=dart_file_name(n.name),n.return_oc_type=dart_to_oc_type(n.returnType),n.return_oc_ob_type=dart_to_oc_object_type(n.returnType),n.return_java_type=dart_to_java_type(n.returnType),n.service_name=e.name,n.last=t==e.messages.length-1,n.pkg_name=program.package,n.default_return_value=default_dart_value(n.returnType);for(var o=0;o<n.args.length;o++){var i=n.args[o];i.oc_type=dart_to_oc_type(i.type),i.java_type=dart_to_java_type(i.type),i.oc_ob_type=dart_to_oc_object_type(i.type),i.last=o==n.args.length-1}"flutter"==n.messageType?r.push(n):a.push(n)}e.native_msg=a,e.flutter_msg=r,e.pkg_name=program.package}function gen_loader(e){gen_java_loader(e),gen_dart_loader(e)}function gen_java_loader(e){generate("java/loader.java",e,"java/loader/ServiceLoader.java")}function gen_dart_loader(e){generate("dart/loader.dart",e,"dart/loader/service_loader.dart")}function gen_dart(e){console.log("Generating dart for"+e.name);var a="dart/"+e.name+"/";generate("dart/service.dart",e,a+"service/"+e.service_dart_file_name+".dart"),generate("dart/service_register.dart",e,a+"service/"+e.service_dart_file_name+"_register.dart");for(var r=0;r<e.native_msg.length;r++){var t=e.native_msg[r];generate("dart/handler.dart",t,a+"handlers/"+e.service_dart_file_name+"_"+t.msg_dart_file_name+".dart")}}function gen_java(e){console.log("Generating java for"+e.name);var a="java/"+e.name+"/";generate("java/service.java",e,a+"service/"+e.name+".java"),generate("java/service_register.java",e,a+"service/"+e.name+"Register.java");for(var r=0;r<e.flutter_msg.length;r++){var t=e.flutter_msg[r];generate("java/handler.java",t,a+"handlers/"+e.name+"_"+t.name+".java")}}function gen_oc(e){console.log("Generating objective c for"+e.name);var a="oc/"+e.name+"/";generate("oc/service.h",e,a+"service/Service_"+e.name+".h"),generate("oc/service.mm",e,a+"service/Service_"+e.name+".mm");for(var r=0;r<e.flutter_msg.length;r++){var t=e.flutter_msg[r];generate("oc/handler.h",t,a+"handlers/"+e.name+"_"+t.name+".h"),generate("oc/handler.mm",t,a+"handlers/"+e.name+"_"+t.name+".mm")}}function writeFile(e,a,r){var t=require("mkdirp"),n=require("fs");t((0,require("path").dirname)(e),(function(t){if(t)return r(t);n.writeFile(e,a,r)}))}function getAssetData(e){const a=require("fs");var r=__dirname+"/"+e;return a.readFileSync(r,"utf8")}function generate(e,a,r){require("fs");let t=getAssetData("templates/"+e);var n=Mustache.render(t,a);n=n.replace(/&quot;/g,'"'),writeFile(Path.join(program.output,r),n,(function(){}))}function dart_file_name(e){let a="";var r=0;let t=new Array;for(var n=e;r<n.length;)n.charAt(r)>="A"&&n.charAt(r)<="Z"?(a.length>0&&t.push(a),a="",a+=n.charAt(r++)):a+=n.charAt(r++);a.length>0&&t.push(a);for(var o="",i=0;i<t.length;i++){var s=t[i].toLowerCase();""==o?o=s:(o+="_",o+=s)}return o}function dart_to_oc_object_type(e){var a={int:"NSNumber *",double:"NSNumber *",bool:"NSNumber *",String:"NSString *"}[e];return a||(e.includes("List")?"NSArray *":e.includes("Map")?"NSDictionary *":mappedType)}function dart_to_oc_type(e){var a={int:"int64_t",double:"double",bool:"BOOL",String:"NSString *"}[e];return a||(e.includes("List")?"NSArray *":e.includes("Map")?"NSDictionary *":a)}function dart_to_java_type(e){var a={int:"Integer",double:"Double",bool:"Boolean",String:"String"}[e];return a||(e.includes("List")?"List":e.includes("Map")?"Map":a)}console.log("Tool package at"),console.log(__dirname),program.arguments("<directory>").option("-o , --output <output>","A directory to save the output").option("-t , --type <type>","input file type support json and yaml default is json").option("-p , --package <package>","Java package").action((function(e){program.directory=e,start(e)})).parse(process.argv);
//# sourceMappingURL=/sm/561f4ed45fbdfc7a3696bcf764aeac5fc9df2057ba2a3c92c5e7643703273de3.map