@aiot-toolkit/aiotpack 2.0.1-alpha.6 → 2.0.1-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -124,11 +124,11 @@ function generateEntryFile(context) {
124
124
  message: `Generating entry file`
125
125
  });
126
126
  const dist = path_1.default.resolve(projectPath, output);
127
- const manifests = yield (0, fast_glob_1.default)(`${dist}/**/manifest.json`);
127
+ const manifests = yield (0, fast_glob_1.default)(`${fast_glob_1.default.convertPathToPattern(dist)}/**/manifest.json`);
128
128
  function relativeDist(tar) {
129
129
  return path_1.default.join('.', path_1.default.relative(dist, tar)).replace(path_1.default.sep, '/');
130
130
  }
131
- const appTs = yield (0, fast_glob_1.default)(`${dist}/**/app.ts`);
131
+ const appTs = yield (0, fast_glob_1.default)(`${fast_glob_1.default.convertPathToPattern(dist)}/**/app.ts`);
132
132
  if (appTs.length !== 1) {
133
133
  ColorConsole_1.default.log({ level: shared_utils_1.LOG_LEVEL.Error, message: 'app.ts can only have one!' });
134
134
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["followWorks/xts/entryTemplate.ts"],"names":[],"mappings":"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","file":"entryTemplate.js","sourcesContent":["import { HomeState, tsFrameWork } from '@aiot-toolkit/parser/lib/xts/enum/Framework'\nimport { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport FastGlob from 'fast-glob'\nimport { IFileLaneContext } from 'file-lane'\nimport Fs from 'fs-extra'\nimport Path from 'path'\nexport interface Aspects {\n path: string\n name: string\n routes?: {\n importPath: string\n name: string\n route: string\n }[]\n}\n\nexport interface GenerateEntryParams {\n appPath: string\n aspects?: Aspects[]\n}\n\nexport const entryTemplate = (options: GenerateEntryParams) => {\n const { aspects = [] } = options\n\n function generatImportAspects() {\n if (!aspects) return ''\n let imports = '// import aspects\\n'\n for (let i = 0; i < aspects.length; i++) {\n const aspect = aspects[i]\n imports += `import AspectClass${i + 1} from './${aspect.path}'\\n`\n const { routes = [] } = aspect\n for (let r = 0; r < routes?.length; r++) {\n const route = routes[r]\n imports += `import Page${i + 1}_${r + 1}, { ${HomeState.interface} as ${\n HomeState.interface\n }${i + 1}_${r + 1}_ } from './${route.importPath}'\\n`\n }\n }\n return imports\n }\n\n function generateDefs() {\n let res = '// aspects\\n'\n for (let i = 0; i < aspects.length; i++) {\n const aspect = aspects[i]\n const { routes = [] } = aspect\n for (let r = 0; r < routes.length; r++) {\n const route = routes[r]\n res += `\n const pathPages${i + 1}_${r + 1} = new Map()\n pathPages${i + 1}_${r + 1}.set('${route.route}', function (params: ${HomeState.interface}${\n i + 1\n }_${r + 1}_): Page {\n return new Page${i + 1}_${r + 1}(params)\n })\n const aspectName_${i + 1} = '${aspect.name}'\n const aspectDef_${i + 1}: AspectDefinition = {\n newFn: (): ViewAspect => new AspectClass${i + 1}(),\n pathPages: pathPages${i + 1}_${r + 1}\n } \n aspectDefs.set(aspectName_${i + 1}, aspectDef_${i + 1})`\n }\n }\n\n return res\n }\n\n return `import {\n // class\n App,\n AppDefinition,\n AppContainer,\n AspectDefinition,\n ViewAspect,\n Page,\n Route,\n RouteInfo,\n // framework\n context,\n getInfoFromRoute,\n\n // export function\n on\n} from '../node_modules/${tsFrameWork.name}/index'\n\n// import app\nimport AppClass from './${options.appPath}'\n${generatImportAspects()}\nconsole.log('startApp-start timeEnd:', Date.now())\n\nfunction getAspectDefs() {\n const aspectDefs = new Map()\n ${generateDefs()}\n return aspectDefs\n}\n\nfunction entry(path: string): void {\n console.log('~~~~~~~~~entry path', path)\n const route: Route = { uri: path }\n const routeInfo: RouteInfo = getInfoFromRoute(route)\n // app\n let appName: string = ''\n if (routeInfo?.appName) appName = routeInfo.appName\n let app = context.getApp(appName)\n if (app === null) {\n const appDef: AppDefinition = {\n newFn: (): App => new AppClass()\n }\n const aspectDefs = getAspectDefs()\n app = new AppContainer(appDef, aspectDefs)\n }\n context.openApp(app, routeInfo)\n}\n\n// export api to native\nexport { entry, on }\n`\n}\n\nexport const XtsEntryFileName = '__entry__.ts'\n/**\n * 生成 __entry__.ts 文件\n * @param context\n */\nexport async function generateEntryFile(context: IFileLaneContext) {\n const { projectPath, output } = context\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: `Generating entry file`\n })\n const dist = Path.resolve(projectPath, output)\n const manifests = await FastGlob(`${dist}/**/manifest.json`)\n\n function relativeDist(tar: string) {\n return Path.join('.', Path.relative(dist, tar)).replace(Path.sep, '/')\n }\n\n const appTs = await FastGlob(`${dist}/**/app.ts`)\n if (appTs.length !== 1) {\n ColorConsole.log({ level: LOG_LEVEL.Error, message: 'app.ts can only have one!' })\n }\n let opt: GenerateEntryParams = {\n appPath: relativeDist(appTs[0].replace('.ts', '')),\n aspects: []\n }\n\n for (const manifest of manifests) {\n const content = Fs.readFileSync(manifest, 'utf-8')\n const data = JSON.parse(content)\n if (data?.router?.pages) {\n opt.aspects?.push({\n name: data.name,\n path: relativeDist(Path.resolve(Path.dirname(manifest), 'aspect')),\n routes: Object.entries<{ path: string }>(data?.router?.pages).map(([k, v]) => {\n return {\n importPath: relativeDist(Path.resolve(Path.dirname(manifest), v.path)),\n name: k,\n route: v.path\n }\n })\n })\n }\n }\n\n const template = entryTemplate(opt)\n Fs.writeFileSync(Path.join(projectPath, output, XtsEntryFileName), template)\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: `Entry file built`\n })\n}\n"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["followWorks/xts/entryTemplate.ts"],"names":[],"mappings":"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","file":"entryTemplate.js","sourcesContent":["import { HomeState, tsFrameWork } from '@aiot-toolkit/parser/lib/xts/enum/Framework'\nimport { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport FastGlob from 'fast-glob'\nimport { IFileLaneContext } from 'file-lane'\nimport Fs from 'fs-extra'\nimport Path from 'path'\nexport interface Aspects {\n path: string\n name: string\n routes?: {\n importPath: string\n name: string\n route: string\n }[]\n}\n\nexport interface GenerateEntryParams {\n appPath: string\n aspects?: Aspects[]\n}\n\nexport const entryTemplate = (options: GenerateEntryParams) => {\n const { aspects = [] } = options\n\n function generatImportAspects() {\n if (!aspects) return ''\n let imports = '// import aspects\\n'\n for (let i = 0; i < aspects.length; i++) {\n const aspect = aspects[i]\n imports += `import AspectClass${i + 1} from './${aspect.path}'\\n`\n const { routes = [] } = aspect\n for (let r = 0; r < routes?.length; r++) {\n const route = routes[r]\n imports += `import Page${i + 1}_${r + 1}, { ${HomeState.interface} as ${\n HomeState.interface\n }${i + 1}_${r + 1}_ } from './${route.importPath}'\\n`\n }\n }\n return imports\n }\n\n function generateDefs() {\n let res = '// aspects\\n'\n for (let i = 0; i < aspects.length; i++) {\n const aspect = aspects[i]\n const { routes = [] } = aspect\n for (let r = 0; r < routes.length; r++) {\n const route = routes[r]\n res += `\n const pathPages${i + 1}_${r + 1} = new Map()\n pathPages${i + 1}_${r + 1}.set('${route.route}', function (params: ${HomeState.interface}${\n i + 1\n }_${r + 1}_): Page {\n return new Page${i + 1}_${r + 1}(params)\n })\n const aspectName_${i + 1} = '${aspect.name}'\n const aspectDef_${i + 1}: AspectDefinition = {\n newFn: (): ViewAspect => new AspectClass${i + 1}(),\n pathPages: pathPages${i + 1}_${r + 1}\n } \n aspectDefs.set(aspectName_${i + 1}, aspectDef_${i + 1})`\n }\n }\n\n return res\n }\n\n return `import {\n // class\n App,\n AppDefinition,\n AppContainer,\n AspectDefinition,\n ViewAspect,\n Page,\n Route,\n RouteInfo,\n // framework\n context,\n getInfoFromRoute,\n\n // export function\n on\n} from '../node_modules/${tsFrameWork.name}/index'\n\n// import app\nimport AppClass from './${options.appPath}'\n${generatImportAspects()}\nconsole.log('startApp-start timeEnd:', Date.now())\n\nfunction getAspectDefs() {\n const aspectDefs = new Map()\n ${generateDefs()}\n return aspectDefs\n}\n\nfunction entry(path: string): void {\n console.log('~~~~~~~~~entry path', path)\n const route: Route = { uri: path }\n const routeInfo: RouteInfo = getInfoFromRoute(route)\n // app\n let appName: string = ''\n if (routeInfo?.appName) appName = routeInfo.appName\n let app = context.getApp(appName)\n if (app === null) {\n const appDef: AppDefinition = {\n newFn: (): App => new AppClass()\n }\n const aspectDefs = getAspectDefs()\n app = new AppContainer(appDef, aspectDefs)\n }\n context.openApp(app, routeInfo)\n}\n\n// export api to native\nexport { entry, on }\n`\n}\n\nexport const XtsEntryFileName = '__entry__.ts'\n/**\n * 生成 __entry__.ts 文件\n * @param context\n */\nexport async function generateEntryFile(context: IFileLaneContext) {\n const { projectPath, output } = context\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: `Generating entry file`\n })\n const dist = Path.resolve(projectPath, output)\n const manifests = await FastGlob(`${FastGlob.convertPathToPattern(dist)}/**/manifest.json`)\n\n function relativeDist(tar: string) {\n return Path.join('.', Path.relative(dist, tar)).replace(Path.sep, '/')\n }\n\n const appTs = await FastGlob(`${FastGlob.convertPathToPattern(dist)}/**/app.ts`)\n if (appTs.length !== 1) {\n ColorConsole.log({ level: LOG_LEVEL.Error, message: 'app.ts can only have one!' })\n }\n let opt: GenerateEntryParams = {\n appPath: relativeDist(appTs[0].replace('.ts', '')),\n aspects: []\n }\n\n for (const manifest of manifests) {\n const content = Fs.readFileSync(manifest, 'utf-8')\n const data = JSON.parse(content)\n if (data?.router?.pages) {\n opt.aspects?.push({\n name: data.name,\n path: relativeDist(Path.resolve(Path.dirname(manifest), 'aspect')),\n routes: Object.entries<{ path: string }>(data?.router?.pages).map(([k, v]) => {\n return {\n importPath: relativeDist(Path.resolve(Path.dirname(manifest), v.path)),\n name: k,\n route: v.path\n }\n })\n })\n }\n }\n\n const template = entryTemplate(opt)\n Fs.writeFileSync(Path.join(projectPath, output, XtsEntryFileName), template)\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: `Entry file built`\n })\n}\n"],"sourceRoot":"../../../src"}
@@ -1,14 +1,52 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
2
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
36
  };
5
37
  Object.defineProperty(exports, "__esModule", { value: true });
6
38
  exports.generateRpk = void 0;
39
+ const path_1 = __importDefault(require("path"));
7
40
  const XtsFollowWorks_1 = __importDefault(require("../../utils/xts/XtsFollowWorks"));
8
41
  const ts2wasm_1 = require("./ts2wasm");
9
- const generateRpk = (context) => {
10
- return XtsFollowWorks_1.default.defaultZipProject(context, { tarDir: ts2wasm_1.wasmPackageName });
11
- };
42
+ const generateRpk = (context) => __awaiter(void 0, void 0, void 0, function* () {
43
+ const manifestPath = path_1.default.resolve(context.projectPath, 'app', 'manifest.json');
44
+ const manifest = yield Promise.resolve(`${manifestPath}`).then(s => __importStar(require(s)));
45
+ return XtsFollowWorks_1.default.defaultZipProject(context, {
46
+ tarDir: ts2wasm_1.wasmPackageName,
47
+ packageName: manifest.package
48
+ });
49
+ });
12
50
  exports.generateRpk = generateRpk;
13
51
 
14
52
  //# sourceMappingURL=generateRpk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["followWorks/xts/generateRpk.ts"],"names":[],"mappings":";;;;;;AACA,oFAA2D;AAE3D,uCAA2C;AAEpC,MAAM,WAAW,GAAe,CAAC,OAAO,EAAE,EAAE;IACjD,OAAO,wBAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,yBAAe,EAAE,CAAC,CAAA;AAC/E,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB","file":"generateRpk.js","sourcesContent":["import { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport XtsFollowWorks from '../../utils/xts/XtsFollowWorks'\n\nimport { wasmPackageName } from './ts2wasm'\n\nexport const generateRpk: FollowWork = (context) => {\n return XtsFollowWorks.defaultZipProject(context, { tarDir: wasmPackageName })\n}\n"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["followWorks/xts/generateRpk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAuB;AACvB,oFAA2D;AAE3D,uCAA2C;AAEpC,MAAM,WAAW,GAAe,CAAO,OAAO,EAAE,EAAE;IACvD,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,eAAe,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,yBAAa,YAAY,uCAAC,CAAA;IAC3C,OAAO,wBAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE;QAC/C,MAAM,EAAE,yBAAe;QACvB,WAAW,EAAE,QAAQ,CAAC,OAAO;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAPY,QAAA,WAAW,eAOvB","file":"generateRpk.js","sourcesContent":["import { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport path from 'path'\nimport XtsFollowWorks from '../../utils/xts/XtsFollowWorks'\n\nimport { wasmPackageName } from './ts2wasm'\n\nexport const generateRpk: FollowWork = async (context) => {\n const manifestPath = path.resolve(context.projectPath, 'app', 'manifest.json')\n const manifest = await import(manifestPath)\n return XtsFollowWorks.defaultZipProject(context, {\n tarDir: wasmPackageName,\n packageName: manifest.package\n })\n}\n"],"sourceRoot":"../../../src"}
@@ -61,6 +61,8 @@ const ts2wasm = (context) => __awaiter(void 0, void 0, void 0, function* () {
61
61
  });
62
62
  fs_1.default.copyFileSync(from, to);
63
63
  }
64
+ /** 3. 特殊处理 app/manifest.json */
65
+ fs_1.default.copyFileSync(path_1.default.resolve(fast_glob_1.default.convertPathToPattern(projectPath), output, 'app', 'manifest.json'), path_1.default.resolve(fast_glob_1.default.convertPathToPattern(projectPath), exports.wasmPackageName, 'manifest.json'));
64
66
  });
65
67
  exports.ts2wasm = ts2wasm;
66
68
 
@@ -1 +1 @@
1
- {"version":3,"sources":["followWorks/xts/ts2wasm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AACtE,iDAAwC;AACxC,0DAA0B;AAE1B,4CAAmB;AACnB,gDAAuB;AACvB,mDAAkD;AAErC,QAAA,eAAe,GAAG,cAAc,CAAA;AAE7C;;;GAGG;AACI,MAAM,OAAO,GAAe,CAAO,OAAO,EAAE,EAAE;IACnD,sBAAY,CAAC,GAAG,CAAC;QACf,KAAK,EAAE,wBAAS,CAAC,IAAI;QACrB,OAAO,EAAE,uCAAuC;KACjD,CAAC,CAAA;IACF,wBAAwB;IACxB,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAEvC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gCAAgB,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,uBAAe,CAAC,CAAA;IAC1D,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,kBAAkB;IAClB,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAChF,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAClB,QAAQ,WAAW,0BAA0B,SAAS,OAAO,OAAO,WAAW,EAC/E;QACE,QAAQ,EAAE,OAAO;KAClB,CACF,CAAA;IACD,sBAAY,CAAC,GAAG,CAAC;QACf,KAAK,EAAE,wBAAS,CAAC,IAAI;QACrB,OAAO,EAAE,GAAG;KACb,CAAC,CAAA;IACF,gBAAgB;IAChB,qBAAqB;IACrB,MAAM,KAAK,GAAG,mBAAE,CAAC,IAAI,CAAC,GAAG,mBAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,MAAM,OAAO,EAAE;QAC9E,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,CAAC;QACvF,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,EAAE,EAAE,IAAI,uBAAe,EAAE,CAAC,CAAA;QAChF,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC7B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;KAC1B;AACH,CAAC,CAAA,CAAA;AAzCY,QAAA,OAAO,WAyCnB","file":"ts2wasm.js","sourcesContent":["import { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport { execSync } from 'child_process'\nimport fg from 'fast-glob'\nimport { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport fs from 'fs'\nimport path from 'path'\nimport { XtsEntryFileName } from './entryTemplate'\n\nexport const wasmPackageName = 'wasmUnpacked'\n\n/**\n * 将 __entry__.ts 文件打包成 warm 文件\n * @param context\n */\nexport const ts2wasm: FollowWork = async (context) => {\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: 'Waiting for generating app.wasm file.'\n })\n /** 1. 生成 app.wasm 文件 */\n const { projectPath, output } = context\n\n const buildDir = path.resolve(projectPath, output)\n const entryFile = path.resolve(buildDir, XtsEntryFileName)\n const wasmDir = path.resolve(projectPath, wasmPackageName)\n fs.mkdirSync(wasmDir, {\n recursive: true\n })\n // TODO: 后续修改为 @mi\n const ts2wasmpath = path.resolve(projectPath, 'node_modules', 'mi/wasmnizer-ts')\n const res = execSync(\n `node ${ts2wasmpath}/build/cli/ts2wasm.js ${entryFile} -o ${wasmDir}/app.wasm`,\n {\n encoding: 'utf-8'\n }\n )\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: res\n })\n /** 2. 拷贝静态资源 */\n // TODO: ignore 数组待优化\n const files = fg.sync(`${fg.convertPathToPattern(projectPath)}/${output}/**/*`, {\n absolute: true,\n ignore: ['**/*.ts', '**/*.xts', '**/package.json', '**/package-lock.json', '**/*.wasm'],\n onlyFiles: true\n })\n\n for (const from of files) {\n const to = from.replace('/src', '').replace(`/${output}`, `/${wasmPackageName}`)\n fs.mkdirSync(path.dirname(to), {\n recursive: true\n })\n fs.copyFileSync(from, to)\n }\n}\n"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["followWorks/xts/ts2wasm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AACtE,iDAAwC;AACxC,0DAA0B;AAE1B,4CAAmB;AACnB,gDAAuB;AACvB,mDAAkD;AAErC,QAAA,eAAe,GAAG,cAAc,CAAA;AAE7C;;;GAGG;AACI,MAAM,OAAO,GAAe,CAAO,OAAO,EAAE,EAAE;IACnD,sBAAY,CAAC,GAAG,CAAC;QACf,KAAK,EAAE,wBAAS,CAAC,IAAI;QACrB,OAAO,EAAE,uCAAuC;KACjD,CAAC,CAAA;IACF,wBAAwB;IACxB,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAEvC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gCAAgB,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,uBAAe,CAAC,CAAA;IAC1D,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,kBAAkB;IAClB,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAChF,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAClB,QAAQ,WAAW,0BAA0B,SAAS,OAAO,OAAO,WAAW,EAC/E;QACE,QAAQ,EAAE,OAAO;KAClB,CACF,CAAA;IACD,sBAAY,CAAC,GAAG,CAAC;QACf,KAAK,EAAE,wBAAS,CAAC,IAAI;QACrB,OAAO,EAAE,GAAG;KACb,CAAC,CAAA;IAEF,gBAAgB;IAChB,qBAAqB;IACrB,MAAM,KAAK,GAAG,mBAAE,CAAC,IAAI,CAAC,GAAG,mBAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,MAAM,OAAO,EAAE;QAC9E,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,CAAC;QACvF,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,EAAE,EAAE,IAAI,uBAAe,EAAE,CAAC,CAAA;QAChF,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC7B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;KAC1B;IAED,gCAAgC;IAChC,YAAE,CAAC,YAAY,CACb,cAAI,CAAC,OAAO,CAAC,mBAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,EAClF,cAAI,CAAC,OAAO,CAAC,mBAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,uBAAe,EAAE,eAAe,CAAC,CACrF,CAAA;AACH,CAAC,CAAA,CAAA;AAhDY,QAAA,OAAO,WAgDnB","file":"ts2wasm.js","sourcesContent":["import { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport { execSync } from 'child_process'\nimport fg from 'fast-glob'\nimport { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport fs from 'fs'\nimport path from 'path'\nimport { XtsEntryFileName } from './entryTemplate'\n\nexport const wasmPackageName = 'wasmUnpacked'\n\n/**\n * 将 __entry__.ts 文件打包成 warm 文件\n * @param context\n */\nexport const ts2wasm: FollowWork = async (context) => {\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: 'Waiting for generating app.wasm file.'\n })\n /** 1. 生成 app.wasm 文件 */\n const { projectPath, output } = context\n\n const buildDir = path.resolve(projectPath, output)\n const entryFile = path.resolve(buildDir, XtsEntryFileName)\n const wasmDir = path.resolve(projectPath, wasmPackageName)\n fs.mkdirSync(wasmDir, {\n recursive: true\n })\n // TODO: 后续修改为 @mi\n const ts2wasmpath = path.resolve(projectPath, 'node_modules', 'mi/wasmnizer-ts')\n const res = execSync(\n `node ${ts2wasmpath}/build/cli/ts2wasm.js ${entryFile} -o ${wasmDir}/app.wasm`,\n {\n encoding: 'utf-8'\n }\n )\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: res\n })\n\n /** 2. 拷贝静态资源 */\n // TODO: ignore 数组待优化\n const files = fg.sync(`${fg.convertPathToPattern(projectPath)}/${output}/**/*`, {\n absolute: true,\n ignore: ['**/*.ts', '**/*.xts', '**/package.json', '**/package-lock.json', '**/*.wasm'],\n onlyFiles: true\n })\n\n for (const from of files) {\n const to = from.replace('/src', '').replace(`/${output}`, `/${wasmPackageName}`)\n fs.mkdirSync(path.dirname(to), {\n recursive: true\n })\n fs.copyFileSync(from, to)\n }\n\n /** 3. 特殊处理 app/manifest.json */\n fs.copyFileSync(\n path.resolve(fg.convertPathToPattern(projectPath), output, 'app', 'manifest.json'),\n path.resolve(fg.convertPathToPattern(projectPath), wasmPackageName, 'manifest.json')\n )\n}\n"],"sourceRoot":"../../../src"}
@@ -21,13 +21,13 @@ const preInstall = (context) => __awaiter(void 0, void 0, void 0, function* () {
21
21
  const packagePath = path_1.default.resolve(projectPath, 'package.json');
22
22
  const preContent = {
23
23
  dependencies: {
24
- '@mi/ts-framework': 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/ts-framework/-/@mi/ts-framework-1.0.5.tgz',
24
+ '@mi/ts-framework': 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/ts-framework/-/@mi/ts-framework-1.0.6.tgz',
25
25
  '@mi/wasmnizer-ts': 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/wasmnizer-ts/-/@mi/wasmnizer-ts-0.0.9.tgz'
26
26
  }
27
27
  };
28
28
  if (!fs_1.default.existsSync(packagePath)) {
29
29
  /** 如果没有 package.json 则创建 */
30
- fs_1.default.writeFileSync(packagePath, JSON.stringify(preContent), {
30
+ fs_1.default.writeFileSync(packagePath, JSON.stringify(preContent, undefined, 2), {
31
31
  encoding: 'utf-8'
32
32
  });
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["preWorks/xts/preInstall.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAwC;AAExC,4CAAmB;AACnB,gDAAuB;AAChB,MAAM,UAAU,GAAY,CAAO,OAAO,EAAE,EAAE;IACnD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAC/B,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG;QACjB,YAAY,EAAE;YACZ,kBAAkB,EAChB,wGAAwG;YAC1G,kBAAkB,EAChB,wGAAwG;SAC3G;KACF,CAAA;IAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC/B,4BAA4B;QAC5B,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YACxD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAA;KACH;SAAM;QACL,MAAM,aAAa,GAAwB,OAAO,CAAC,WAAW,CAAC,CAAA;QAC/D,IACE,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC;YAC/C,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAC/C;YACA,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YACxC,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;gBAC3D,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAA;SACH;KACF;IAED,IAAA,wBAAQ,EAAC,aAAa,EAAE;QACtB,GAAG,EAAE,WAAW;KACjB,CAAC,CAAA;IACF,kBAAkB;IAClB,YAAE,CAAC,UAAU,CACX,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAC7C,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAC7C,CAAA;AACH,CAAC,CAAA,CAAA;AAtCY,QAAA,UAAU,cAsCtB","file":"preInstall.js","sourcesContent":["import { execSync } from 'child_process'\nimport { PreWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport fs from 'fs'\nimport path from 'path'\nexport const preInstall: PreWork = async (context) => {\n const { projectPath } = context\n const packagePath = path.resolve(projectPath, 'package.json')\n const preContent = {\n dependencies: {\n '@mi/ts-framework':\n 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/ts-framework/-/@mi/ts-framework-1.0.5.tgz',\n '@mi/wasmnizer-ts':\n 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/wasmnizer-ts/-/@mi/wasmnizer-ts-0.0.9.tgz'\n }\n }\n\n if (!fs.existsSync(packagePath)) {\n /** 如果没有 package.json 则创建 */\n fs.writeFileSync(packagePath, JSON.stringify(preContent), {\n encoding: 'utf-8'\n })\n } else {\n const pckageContent: Record<string, any> = require(packagePath)\n if (\n !pckageContent.dependencies['@mi/ts-framework'] ||\n !pckageContent.dependencies['@mi/wasmnizer-ts']\n ) {\n Object.assign(pckageContent, preContent)\n fs.writeFileSync(packagePath, JSON.stringify(pckageContent), {\n encoding: 'utf-8'\n })\n }\n }\n\n execSync('npm install', {\n cwd: projectPath\n })\n // 目前ts2wasm不支持@符号\n fs.renameSync(\n path.resolve(projectPath, 'node_modules/@mi'),\n path.resolve(projectPath, 'node_modules/mi')\n )\n}\n"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["preWorks/xts/preInstall.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAwC;AAExC,4CAAmB;AACnB,gDAAuB;AAChB,MAAM,UAAU,GAAY,CAAO,OAAO,EAAE,EAAE;IACnD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAC/B,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG;QACjB,YAAY,EAAE;YACZ,kBAAkB,EAChB,wGAAwG;YAC1G,kBAAkB,EAChB,wGAAwG;SAC3G;KACF,CAAA;IAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC/B,4BAA4B;QAC5B,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;YACtE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAA;KACH;SAAM;QACL,MAAM,aAAa,GAAwB,OAAO,CAAC,WAAW,CAAC,CAAA;QAC/D,IACE,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC;YAC/C,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAC/C;YACA,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YACxC,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;gBAC3D,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAA;SACH;KACF;IAED,IAAA,wBAAQ,EAAC,aAAa,EAAE;QACtB,GAAG,EAAE,WAAW;KACjB,CAAC,CAAA;IACF,kBAAkB;IAClB,YAAE,CAAC,UAAU,CACX,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAC7C,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAC7C,CAAA;AACH,CAAC,CAAA,CAAA;AAtCY,QAAA,UAAU,cAsCtB","file":"preInstall.js","sourcesContent":["import { execSync } from 'child_process'\nimport { PreWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport fs from 'fs'\nimport path from 'path'\nexport const preInstall: PreWork = async (context) => {\n const { projectPath } = context\n const packagePath = path.resolve(projectPath, 'package.json')\n const preContent = {\n dependencies: {\n '@mi/ts-framework':\n 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/ts-framework/-/@mi/ts-framework-1.0.6.tgz',\n '@mi/wasmnizer-ts':\n 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/wasmnizer-ts/-/@mi/wasmnizer-ts-0.0.9.tgz'\n }\n }\n\n if (!fs.existsSync(packagePath)) {\n /** 如果没有 package.json 则创建 */\n fs.writeFileSync(packagePath, JSON.stringify(preContent, undefined, 2), {\n encoding: 'utf-8'\n })\n } else {\n const pckageContent: Record<string, any> = require(packagePath)\n if (\n !pckageContent.dependencies['@mi/ts-framework'] ||\n !pckageContent.dependencies['@mi/wasmnizer-ts']\n ) {\n Object.assign(pckageContent, preContent)\n fs.writeFileSync(packagePath, JSON.stringify(pckageContent), {\n encoding: 'utf-8'\n })\n }\n }\n\n execSync('npm install', {\n cwd: projectPath\n })\n // 目前ts2wasm不支持@符号\n fs.renameSync(\n path.resolve(projectPath, 'node_modules/@mi'),\n path.resolve(projectPath, 'node_modules/mi')\n )\n}\n"],"sourceRoot":"../../../src"}
@@ -2,6 +2,7 @@ import { IFileLaneContext } from 'file-lane';
2
2
  export interface DefaultZipProjectOptions {
3
3
  tarDir?: string;
4
4
  ext?: string;
5
+ packageName: string;
5
6
  }
6
7
  /**
7
8
  * XtsFollowWorks
@@ -44,8 +44,8 @@ class XtsFollowWorks {
44
44
  fs_extra_1.default.ensureDirSync(zipPath);
45
45
  // 清空dist文件夹
46
46
  fs_extra_1.default.emptyDirSync(zipPath);
47
- const filePath = XtsFollowWorks.getFilePath(projectPath, 'dist', undefined, 'rpk');
48
- yield FileLaneUtil_1.default.zipProject([buildPath], filePath);
47
+ const filePath = XtsFollowWorks.getFilePath(projectPath, 'dist', options.packageName, 'rpk');
48
+ yield FileLaneUtil_1.default.zipProject([buildPath], filePath, [options.packageName]);
49
49
  }
50
50
  catch (err) {
51
51
  ColorConsole_1.default.log({ level: shared_utils_1.LOG_LEVEL.Error, message: err.message });
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/xts/XtsFollowWorks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AAEtE,oFAA2D;AAC3D,wDAAyB;AACzB,gDAAuB;AAEvB,sEAA6C;AAO7C;;GAEG;AACH,MAAM,cAAc;IAClB;;;OAGG;IACH,MAAM,CAAO,iBAAiB,CAAC,OAAyB,EAAE,OAAiC;;YACzF,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAA;YAC/C,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAChD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC9C,sBAAsB;YACtB,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBAC7B,sBAAY,CAAC,GAAG,CAAC;oBACf,KAAK,EAAE,wBAAS,CAAC,KAAK;oBACtB,OAAO,EAAE,6DAA6D;iBACvE,CAAC,CAAA;aACH;YACD,IAAI;gBACF,mBAAmB;gBACnB,kBAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBACzB,YAAY;gBACZ,kBAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;gBAClF,MAAM,sBAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAA;aACrD;YAAC,OAAO,GAAG,EAAE;gBACZ,sBAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,wBAAS,CAAC,KAAK,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;aAC9E;QACH,CAAC;KAAA;IACD;;;;;;;OAOG;IACH,MAAM,CAAO,sBAAsB,CAAC,OAAyB;;;YAC3D,MAAM,UAAU,GAAkB;gBAChC;oBACE,MAAM,EAAE,OAAO;oBACf,UAAU,EAAE,EAAE;iBACf;aACF,CAAA;YACD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YACvC,MAAM,YAAY,GAAG,qBAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YACxE,IAAI,kBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC/B,mBAAmB;gBACnB,MAAM,WAAW,GAAG,MAAA,MAAA,kBAAE,CAAC,YAAY,CAAC,YAAY,CAAC,0CAAE,MAAM,0CAAE,OAAO,CAAA;gBAClE,IAAI,WAAW,EAAE;oBACf,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;wBAC9C,qBAAqB;wBACrB,KAAK,IAAI,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE;4BACxC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;4BACpC,WAAW;4BACX,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3D,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;oCAC1B,kBAAkB;oCAClB,IAAI,IAAI,EAAE;wCACR,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAA;qCAC7B;oCACD,kBAAkB;oCAClB,MAAM,KAAK,GACT,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;oCACjF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wCAChB,MAAM;wCACN,UAAU,CAAC,IAAI,CAAC;4CACd,MAAM;4CACN,UAAU,EAAE,CAAC,IAAI,CAAC;yCACnB,CAAC,CAAA;qCACH;yCAAM;wCACL,yBAAyB;wCACzB,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;qCACxC;iCACF;6BACF;iCAAM;gCACL,eAAe;gCACf,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;6BACpC;yBACF;oBACH,CAAC,CAAC,CAAA;iBACH;gBACD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;gBAE9C,kBAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBACzB,kBAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACxB,mBAAmB;gBACnB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;oBAC7B,iBAAiB;oBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC3B,YAAY;oBACZ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;oBACtF,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC7E,IAAI;wBACF,MAAM,sBAAY,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;qBACpD;oBAAC,OAAO,KAAK,EAAE,GAAE;iBACnB;aACF;iBAAM;gBACL,sBAAY,CAAC,GAAG,CAAC;oBACf,KAAK,EAAE,wBAAS,CAAC,KAAK;oBACtB,OAAO,EAAE,gDAAgD;iBAC1D,CAAC,CAAA;aACH;;KACF;IACD;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAChB,WAAmB,EACnB,YAAoB,MAAM,EAC1B,OAAgB,EAChB,GAAG,GAAG,KAAK;QAEX,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,CAAA;QAChF,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACjD,OAAO,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC;CACF;AACD,kBAAe,cAAc,CAAA","file":"XtsFollowWorks.js","sourcesContent":["import { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport { IFileLaneContext } from 'file-lane'\nimport FileLaneUtil from 'file-lane/lib/utils/FileLaneUtil'\nimport Fs from 'fs-extra'\nimport Path from 'path'\nimport IDeviceList from '../../interface/IDeviceList'\nimport UxFileUtils from './../ux/UxFileUtils'\n\nexport interface DefaultZipProjectOptions {\n tarDir?: string\n ext?: string\n}\n\n/**\n * XtsFollowWorks\n */\nclass XtsFollowWorks {\n /**\n * 将项目中build文件夹的内容压缩成zip包,并将压缩产物放到dist文件夹下\n * @param context\n */\n static async defaultZipProject(context: IFileLaneContext, options: DefaultZipProjectOptions) {\n const { projectPath } = context\n const output = options.tarDir || context.output\n const buildPath = Path.join(projectPath, output)\n const zipPath = Path.join(projectPath, 'dist')\n // buildPath必须是真实文件夹路径\n if (!Fs.existsSync(buildPath)) {\n ColorConsole.log({\n level: LOG_LEVEL.Error,\n message: `XtsConfig follwWorkers zip build error, buildPath not exist`\n })\n }\n try {\n // 确认文件夹是否存在,不存在则创建\n Fs.ensureDirSync(zipPath)\n // 清空dist文件夹\n Fs.emptyDirSync(zipPath)\n const filePath = XtsFollowWorks.getFilePath(projectPath, 'dist', undefined, 'rpk')\n await FileLaneUtil.zipProject([buildPath], filePath)\n } catch (err) {\n ColorConsole.log({ level: LOG_LEVEL.Error, message: (err as Error).message })\n }\n }\n /**\n * 将分布式项目按照manifest.json中的配置打包,思路如下:\n * 1. 获取manifest中aspect的路由配置\n * 2. 对aspects中的所有路由信息进行遍历\n * 3. 按照设备(设备+rule)对aspect分类\n * 4. 按照设备列表分别进行打包\n * @param context\n */\n static async zipDistributedQuickApp(context: IFileLaneContext) {\n const deviceList: IDeviceList[] = [\n {\n device: 'phone',\n aspectList: []\n }\n ]\n const { projectPath, output } = context\n const manifestPath = UxFileUtils.getManifestFilePath(projectPath, 'app')\n if (Fs.existsSync(manifestPath)) {\n //获取manifest.json内容\n const aspectsRule = Fs.readJSONSync(manifestPath)?.router?.aspects\n if (aspectsRule) {\n Object.keys(aspectsRule).forEach((aspectRule) => {\n // 分别处理每个aspectRule数组\n for (let item of aspectsRule[aspectRule]) {\n const { devices, rule, path } = item\n // 如果存在设备列表\n if (devices && Array.isArray(devices) && devices.length > 0) {\n for (let device of devices) {\n // 设备名与rule组合为一个设备\n if (rule) {\n device = `${device}.${rule}`\n }\n // 查找设备是否已存在于设备列表中\n const index =\n device === 'phone' ? 0 : deviceList.findIndex((item) => item.device === device)\n if (index === -1) {\n // 新设备\n deviceList.push({\n device,\n aspectList: [path]\n })\n } else {\n // 已存在的设备信息时,仅需添加aspect路由\n deviceList[index].aspectList.push(path)\n }\n }\n } else {\n // 设备值默认值为phone\n deviceList[0].aspectList.push(path)\n }\n }\n })\n }\n const zipPath = Path.join(projectPath, 'dist')\n\n Fs.ensureDirSync(zipPath)\n Fs.emptyDirSync(zipPath)\n // 根据deviceList进行打包\n for (const item of deviceList) {\n // 所有zip包都需要app信息\n item.aspectList.push('app')\n // 将路由转为真实路径\n const buildPaths = item.aspectList.map((name) => Path.join(projectPath, output, name))\n const filePath = XtsFollowWorks.getFilePath(projectPath, 'dist', item.device)\n try {\n await FileLaneUtil.zipProject(buildPaths, filePath)\n } catch (error) {}\n }\n } else {\n ColorConsole.log({\n level: LOG_LEVEL.Error,\n message: 'zip DistributedQuickApp not find manifest.json'\n })\n }\n }\n /**\n * 根据项目路径,打包文件夹名和传入的压缩包名,生成压缩文件zip路径\n * @param projectPath\n * @param outputDir\n * @param zipName\n * @returns\n */\n static getFilePath(\n projectPath: string,\n outputDir: string = 'dist',\n zipName?: string,\n ext = 'zip'\n ) {\n zipName = zipName ? `${zipName}.${ext}` : `${Path.basename(projectPath)}.${ext}`\n const zipPath = Path.join(projectPath, outputDir)\n return Path.join(zipPath, zipName)\n }\n}\nexport default XtsFollowWorks\n"],"sourceRoot":"../../../src"}
1
+ {"version":3,"sources":["utils/xts/XtsFollowWorks.ts"],"names":[],"mappings":"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","file":"XtsFollowWorks.js","sourcesContent":["import { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport { IFileLaneContext } from 'file-lane'\nimport FileLaneUtil from 'file-lane/lib/utils/FileLaneUtil'\nimport Fs from 'fs-extra'\nimport Path from 'path'\nimport IDeviceList from '../../interface/IDeviceList'\nimport UxFileUtils from './../ux/UxFileUtils'\n\nexport interface DefaultZipProjectOptions {\n tarDir?: string\n ext?: string\n packageName: string\n}\n\n/**\n * XtsFollowWorks\n */\nclass XtsFollowWorks {\n /**\n * 将项目中build文件夹的内容压缩成zip包,并将压缩产物放到dist文件夹下\n * @param context\n */\n static async defaultZipProject(context: IFileLaneContext, options: DefaultZipProjectOptions) {\n const { projectPath } = context\n const output = options.tarDir || context.output\n const buildPath = Path.join(projectPath, output)\n const zipPath = Path.join(projectPath, 'dist')\n // buildPath必须是真实文件夹路径\n if (!Fs.existsSync(buildPath)) {\n ColorConsole.log({\n level: LOG_LEVEL.Error,\n message: `XtsConfig follwWorkers zip build error, buildPath not exist`\n })\n }\n try {\n // 确认文件夹是否存在,不存在则创建\n Fs.ensureDirSync(zipPath)\n // 清空dist文件夹\n Fs.emptyDirSync(zipPath)\n const filePath = XtsFollowWorks.getFilePath(projectPath, 'dist', options.packageName, 'rpk')\n await FileLaneUtil.zipProject([buildPath], filePath, [options.packageName])\n } catch (err) {\n ColorConsole.log({ level: LOG_LEVEL.Error, message: (err as Error).message })\n }\n }\n /**\n * 将分布式项目按照manifest.json中的配置打包,思路如下:\n * 1. 获取manifest中aspect的路由配置\n * 2. 对aspects中的所有路由信息进行遍历\n * 3. 按照设备(设备+rule)对aspect分类\n * 4. 按照设备列表分别进行打包\n * @param context\n */\n static async zipDistributedQuickApp(context: IFileLaneContext) {\n const deviceList: IDeviceList[] = [\n {\n device: 'phone',\n aspectList: []\n }\n ]\n const { projectPath, output } = context\n const manifestPath = UxFileUtils.getManifestFilePath(projectPath, 'app')\n if (Fs.existsSync(manifestPath)) {\n //获取manifest.json内容\n const aspectsRule = Fs.readJSONSync(manifestPath)?.router?.aspects\n if (aspectsRule) {\n Object.keys(aspectsRule).forEach((aspectRule) => {\n // 分别处理每个aspectRule数组\n for (let item of aspectsRule[aspectRule]) {\n const { devices, rule, path } = item\n // 如果存在设备列表\n if (devices && Array.isArray(devices) && devices.length > 0) {\n for (let device of devices) {\n // 设备名与rule组合为一个设备\n if (rule) {\n device = `${device}.${rule}`\n }\n // 查找设备是否已存在于设备列表中\n const index =\n device === 'phone' ? 0 : deviceList.findIndex((item) => item.device === device)\n if (index === -1) {\n // 新设备\n deviceList.push({\n device,\n aspectList: [path]\n })\n } else {\n // 已存在的设备信息时,仅需添加aspect路由\n deviceList[index].aspectList.push(path)\n }\n }\n } else {\n // 设备值默认值为phone\n deviceList[0].aspectList.push(path)\n }\n }\n })\n }\n const zipPath = Path.join(projectPath, 'dist')\n\n Fs.ensureDirSync(zipPath)\n Fs.emptyDirSync(zipPath)\n // 根据deviceList进行打包\n for (const item of deviceList) {\n // 所有zip包都需要app信息\n item.aspectList.push('app')\n // 将路由转为真实路径\n const buildPaths = item.aspectList.map((name) => Path.join(projectPath, output, name))\n const filePath = XtsFollowWorks.getFilePath(projectPath, 'dist', item.device)\n try {\n await FileLaneUtil.zipProject(buildPaths, filePath)\n } catch (error) {}\n }\n } else {\n ColorConsole.log({\n level: LOG_LEVEL.Error,\n message: 'zip DistributedQuickApp not find manifest.json'\n })\n }\n }\n /**\n * 根据项目路径,打包文件夹名和传入的压缩包名,生成压缩文件zip路径\n * @param projectPath\n * @param outputDir\n * @param zipName\n * @returns\n */\n static getFilePath(\n projectPath: string,\n outputDir: string = 'dist',\n zipName?: string,\n ext = 'zip'\n ) {\n zipName = zipName ? `${zipName}.${ext}` : `${Path.basename(projectPath)}.${ext}`\n const zipPath = Path.join(projectPath, outputDir)\n return Path.join(zipPath, zipName)\n }\n}\nexport default XtsFollowWorks\n"],"sourceRoot":"../../../src"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiot-toolkit/aiotpack",
3
- "version": "2.0.1-alpha.6",
3
+ "version": "2.0.1-alpha.8",
4
4
  "description": "The process tool for packaging aiot projects.",
5
5
  "keywords": [
6
6
  "aiotpack"
@@ -24,13 +24,13 @@
24
24
  "test": "node ./__tests__/aiotpack.test.js"
25
25
  },
26
26
  "dependencies": {
27
- "@aiot-toolkit/generator": "2.0.1-alpha.6",
28
- "@aiot-toolkit/parser": "2.0.1-alpha.6",
27
+ "@aiot-toolkit/generator": "2.0.1-alpha.8",
28
+ "@aiot-toolkit/parser": "2.0.1-alpha.8",
29
29
  "@hap-toolkit/aaptjs": "^2.0.0",
30
30
  "babel-loader": "^9.1.3",
31
31
  "del": "^4.1.0",
32
32
  "fast-glob": "^3.3.2",
33
- "file-lane": "2.0.1-alpha.6",
33
+ "file-lane": "2.0.1-alpha.8",
34
34
  "file-loader": "^6.2.0",
35
35
  "fs-extra": "^11.2.0",
36
36
  "jsrsasign": "^7.2.2",
@@ -43,5 +43,5 @@
43
43
  "@types/jsrsasign": "^10.5.12",
44
44
  "@types/webpack-sources": "^3.2.3"
45
45
  },
46
- "gitHead": "1dcfd38a45553b5bccbcc5ad1f63f164ee798e4a"
46
+ "gitHead": "67e2c953dfce560a6133656136fe71326140e91c"
47
47
  }