@oppo-minigame/cli
Version:
Command line interface for rapid OPPO minigame development
1 lines • 1.65 kB
JavaScript
const path=require("path"),fs=require("fs-extra"),{copySignFile:copySignFile,createMainifestJson:createMainifestJson,getSuggestPackNameJson:getSuggestPackNameJson,prePackWorker:prePackWorker}=require("../utils"),{signDir:signDir}=require("../pack"),CONFIG=require("../config/config"),replace=require("replace");async function generate(t,e=!0,n=!1,a="debug",s){let i=t||process.cwd();const r=prePackWorker(s,t);await adapter(i,a);let o=path.resolve(path.resolve(__dirname,"../"),"../"),c=path.join(o,"tpl"),l=copySignFile(i,o,CONFIG,e),p=createMainifestJson(c,i,i,getSuggestPackNameJson("",i),"portrait",r),g=path.join(i,CONFIG.DEST_DIR);fs.emptyDirSync(g),await signDir(null,i,g,p.option,l,e,n)}function adapter(t,e){let n=path.join(t,"main.js"),a=`\n\t(async () => {\n\t\tif(window['qg']) {\n\t\t\twindow['qg'].setWasmTaskCompile(true);\n\t\t\tconst constObject = {\n\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tabort(_msg, _file, line, column) {\n\t\t\t\t\t\t\t\t\tconsole.error("abort called at index.ts:" + line + ":" + column);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t};\n\t\t\tconst fs = qg.getFileSystemManager()\n\t\t\tconst bytes = fs.readFileSync('assembly/build/${e}.wasm')\n\t\t\tconst wasmModule = await WebAssembly.instantiate(\n\t\t\t\t\tbytes,\n\t\t\t\t\tconstObject\n\t\t\t);\n\n\t\t\tif(wasmModule) {\n\t\t\t\t\tfor(let key in wasmModule.instance.exports) {\n\t\t\t\t\t\twindow['qg'][key] = wasmModule.instance.exports[key];\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})();\n\t`,s=/\(asy[\s\S]*\}\)\(\)\;/;fs.readFileSync(n,"utf-8").match(s)?replace({regex:s,replacement:a,paths:[n],recursive:!0,silent:!0}):fs.appendFileSync(n,a)}module.exports=generate;