@aiot-toolkit/aiotpack 2.0.1-alpha.7 → 2.0.1-alpha.9

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.
@@ -12,7 +12,7 @@ declare class XtsConfig implements IFileLaneConfig {
12
12
  loader: (typeof XtsLoader)[];
13
13
  }[];
14
14
  };
15
- preWorks: import("file-lane/lib/interface/IFileLaneConfig").PreWork[];
16
- followWorks: import("file-lane/lib/interface/IFileLaneConfig").FollowWork[];
15
+ preWorks: import("file-lane/lib/interface/IFileLaneConfig").PreWork<import("../interface/ICompileOptions").IXtsCompileOptions>[];
16
+ followWorks: import("file-lane/lib/interface/IFileLaneConfig").FollowWork<import("../interface/ICompileOptions").IXtsCompileOptions>[];
17
17
  }
18
18
  export default XtsConfig;
@@ -45,7 +45,7 @@ const entryTemplate = (options) => {
45
45
  const route = routes[r];
46
46
  res += `
47
47
  const pathPages${i + 1}_${r + 1} = new Map()
48
- pathPages${i + 1}_${r + 1}.set('${route.route}', function (params: ${Framework_1.HomeState.interface}${i + 1}_${r + 1}_): Page {
48
+ pathPages${i + 1}_${r + 1}.set('${route.route}', function (params?: ${Framework_1.HomeState.interface}${i + 1}_${r + 1}_): Page {
49
49
  return new Page${i + 1}_${r + 1}(params)
50
50
  })
51
51
  const aspectName_${i + 1} = '${aspect.name}'
@@ -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(`${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
+ {"version":3,"sources":["followWorks/xts/entryTemplate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2EAAoF;AACpF,6DAAsD;AACtD,+FAAsE;AACtE,0DAAgC;AAEhC,wDAAyB;AACzB,gDAAuB;AAgBhB,MAAM,aAAa,GAAG,CAAC,OAA4B,EAAE,EAAE;IAC5D,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAEhC,SAAS,oBAAoB;QAC3B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAA;QACvB,IAAI,OAAO,GAAG,qBAAqB,CAAA;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACzB,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,KAAK,CAAA;YACjE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACvB,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,qBAAS,CAAC,SAAS,OAC/D,qBAAS,CAAC,SACZ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,UAAU,KAAK,CAAA;aACtD;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,SAAS,YAAY;QACnB,IAAI,GAAG,GAAG,cAAc,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACzB,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACvB,GAAG,IAAI;mBACI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,KAAK,yBAAyB,qBAAS,CAAC,SAAS,GACvF,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CAAC;qBACU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;;qBAEd,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI;oBACxB,CAAC,GAAG,CAAC;8CACqB,CAAC,GAAG,CAAC;0BACzB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;;8BAEV,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAA;aACnD;SACF;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;0BAgBiB,uBAAW,CAAC,IAAI;;;0BAGhB,OAAO,CAAC,OAAO;EACvC,oBAAoB,EAAE;;;;;IAKpB,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBjB,CAAA;AACD,CAAC,CAAA;AAhGY,QAAA,aAAa,iBAgGzB;AAEY,QAAA,gBAAgB,GAAG,cAAc,CAAA;AAC9C;;;GAGG;AACH,SAAsB,iBAAiB,CAAC,OAAyB;;;QAC/D,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QACvC,sBAAY,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,wBAAS,CAAC,IAAI;YACrB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,mBAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAE3F,SAAS,YAAY,CAAC,GAAW;YAC/B,OAAO,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACxE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,mBAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAChF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,sBAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,wBAAS,CAAC,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAA;SACnF;QACD,IAAI,GAAG,GAAwB;YAC7B,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,EAAE,EAAE;SACZ,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,OAAO,GAAG,kBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAChC,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,KAAK,EAAE;gBACvB,MAAA,GAAG,CAAC,OAAO,0CAAE,IAAI,CAAC;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,YAAY,CAAC,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;oBAClE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAmB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC3E,OAAO;4BACL,UAAU,EAAE,YAAY,CAAC,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;4BACtE,IAAI,EAAE,CAAC;4BACP,KAAK,EAAE,CAAC,CAAC,IAAI;yBACd,CAAA;oBACH,CAAC,CAAC;iBACH,CAAC,CAAA;aACH;SACF;QAED,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAA;QACnC,kBAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,wBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAA;QAC5E,sBAAY,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,wBAAS,CAAC,IAAI;YACrB,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAA;;CACH;AA9CD,8CA8CC","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,2 +1,3 @@
1
1
  import { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig';
2
- export declare const generateRpk: FollowWork;
2
+ import { IXtsCompileOptions } from '../../interface/ICompileOptions';
3
+ export declare const generateRpk: FollowWork<IXtsCompileOptions>;
@@ -1,14 +1,58 @@
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"));
41
+ const ColorConsole_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/ColorConsole"));
8
42
  const ts2wasm_1 = require("./ts2wasm");
9
- const generateRpk = (context) => {
10
- return XtsFollowWorks_1.default.defaultZipProject(context, { tarDir: ts2wasm_1.wasmPackageName });
11
- };
43
+ const generateRpk = (context, _, compilerOptions) => __awaiter(void 0, void 0, void 0, function* () {
44
+ var _a;
45
+ if ((_a = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.skip) === null || _a === void 0 ? void 0 : _a.includes('package')) {
46
+ ColorConsole_1.default.log({ message: `skip package due to --skip ${compilerOptions.skip.join(',')}` });
47
+ return;
48
+ }
49
+ const manifestPath = path_1.default.resolve(context.projectPath, 'app', 'manifest.json');
50
+ const manifest = yield Promise.resolve(`${manifestPath}`).then(s => __importStar(require(s)));
51
+ return XtsFollowWorks_1.default.defaultZipProject(context, {
52
+ tarDir: ts2wasm_1.wasmPackageName,
53
+ packageName: manifest.package
54
+ });
55
+ });
12
56
  exports.generateRpk = generateRpk;
13
57
 
14
58
  //# 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,+FAAsE;AAEtE,uCAA2C;AAEpC,MAAM,WAAW,GAAmC,CAAO,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE;;IAC/F,IAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC9C,sBAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,8BAA8B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;QAC7F,OAAM;KACP;IACD,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;AAXY,QAAA,WAAW,eAWvB","file":"generateRpk.js","sourcesContent":["import { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport path from 'path'\nimport XtsFollowWorks from '../../utils/xts/XtsFollowWorks'\n\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport { IXtsCompileOptions } from '../../interface/ICompileOptions'\nimport { wasmPackageName } from './ts2wasm'\n\nexport const generateRpk: FollowWork<IXtsCompileOptions> = async (context, _, compilerOptions) => {\n if (compilerOptions?.skip?.includes('package')) {\n ColorConsole.log({ message: `skip package due to --skip ${compilerOptions.skip.join(',')}` })\n return\n }\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"}
@@ -1,7 +1,8 @@
1
1
  import { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig';
2
+ import { IXtsCompileOptions } from '../../interface/ICompileOptions';
2
3
  export declare const wasmPackageName = "wasmUnpacked";
3
4
  /**
4
5
  * 将 __entry__.ts 文件打包成 warm 文件
5
6
  * @param context
6
7
  */
7
- export declare const ts2wasm: FollowWork;
8
+ export declare const ts2wasm: FollowWork<IXtsCompileOptions>;
@@ -25,11 +25,8 @@ exports.wasmPackageName = 'wasmUnpacked';
25
25
  * 将 __entry__.ts 文件打包成 warm 文件
26
26
  * @param context
27
27
  */
28
- const ts2wasm = (context) => __awaiter(void 0, void 0, void 0, function* () {
29
- ColorConsole_1.default.log({
30
- level: shared_utils_1.LOG_LEVEL.Info,
31
- message: 'Waiting for generating app.wasm file.'
32
- });
28
+ const ts2wasm = (context, _, compilerOptions) => __awaiter(void 0, void 0, void 0, function* () {
29
+ var _a;
33
30
  /** 1. 生成 app.wasm 文件 */
34
31
  const { projectPath, output } = context;
35
32
  const buildDir = path_1.default.resolve(projectPath, output);
@@ -38,15 +35,29 @@ const ts2wasm = (context) => __awaiter(void 0, void 0, void 0, function* () {
38
35
  fs_1.default.mkdirSync(wasmDir, {
39
36
  recursive: true
40
37
  });
41
- // TODO: 后续修改为 @mi
42
- const ts2wasmpath = path_1.default.resolve(projectPath, 'node_modules', 'mi/wasmnizer-ts');
43
- const res = (0, child_process_1.execSync)(`node ${ts2wasmpath}/build/cli/ts2wasm.js ${entryFile} -o ${wasmDir}/app.wasm`, {
44
- encoding: 'utf-8'
45
- });
46
- ColorConsole_1.default.log({
47
- level: shared_utils_1.LOG_LEVEL.Info,
48
- message: res
49
- });
38
+ function compile() {
39
+ // TODO: 后续修改为 @mi
40
+ const ts2wasmpath = path_1.default.resolve(projectPath, 'node_modules', 'mi/wasmnizer-ts');
41
+ ColorConsole_1.default.log({
42
+ level: shared_utils_1.LOG_LEVEL.Info,
43
+ message: 'Waiting for generating app.wasm file.'
44
+ });
45
+ const res = (0, child_process_1.execSync)(`node ${ts2wasmpath}/build/cli/ts2wasm.js ${entryFile} -o ${wasmDir}/app.wasm`, {
46
+ encoding: 'utf-8'
47
+ });
48
+ ColorConsole_1.default.log({
49
+ level: shared_utils_1.LOG_LEVEL.Info,
50
+ message: res
51
+ });
52
+ }
53
+ if ((_a = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.skip) === null || _a === void 0 ? void 0 : _a.includes('ts2wasm')) {
54
+ ColorConsole_1.default.log({
55
+ message: `skip compile ts to wasm due to --skip ${compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.skip.join(',')}`
56
+ });
57
+ }
58
+ else {
59
+ compile();
60
+ }
50
61
  /** 2. 拷贝静态资源 */
51
62
  // TODO: ignore 数组待优化
52
63
  const files = fast_glob_1.default.sync(`${fast_glob_1.default.convertPathToPattern(projectPath)}/${output}/**/*`, {
@@ -61,6 +72,8 @@ const ts2wasm = (context) => __awaiter(void 0, void 0, void 0, function* () {
61
72
  });
62
73
  fs_1.default.copyFileSync(from, to);
63
74
  }
75
+ /** 3. 特殊处理 app/manifest.json */
76
+ 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
77
  });
65
78
  exports.ts2wasm = ts2wasm;
66
79
 
@@ -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":"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","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 { IXtsCompileOptions } from '../../interface/ICompileOptions'\nimport { XtsEntryFileName } from './entryTemplate'\n\nexport const wasmPackageName = 'wasmUnpacked'\n\n/**\n * 将 __entry__.ts 文件打包成 warm 文件\n * @param context\n */\nexport const ts2wasm: FollowWork<IXtsCompileOptions> = async (context, _, compilerOptions) => {\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\n function compile() {\n // TODO: 后续修改为 @mi\n const ts2wasmpath = path.resolve(projectPath, 'node_modules', 'mi/wasmnizer-ts')\n ColorConsole.log({\n level: LOG_LEVEL.Info,\n message: 'Waiting for generating app.wasm file.'\n })\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\n if (compilerOptions?.skip?.includes('ts2wasm')) {\n ColorConsole.log({\n message: `skip compile ts to wasm due to --skip ${compilerOptions?.skip.join(',')}`\n })\n } else {\n compile()\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"}
@@ -0,0 +1,6 @@
1
+ export declare const skipList: readonly ["install", "ts2wasm", "package"];
2
+ export type ISkipList = typeof skipList;
3
+ export interface IXtsCompileOptions {
4
+ watch?: boolean;
5
+ skip?: ISkipList;
6
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skipList = void 0;
4
+ exports.skipList = ['install', 'ts2wasm', 'package'];
5
+
6
+ //# sourceMappingURL=ICompileOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["interface/ICompileOptions.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAA","file":"ICompileOptions.js","sourcesContent":["export const skipList = ['install', 'ts2wasm', 'package'] as const\n\nexport type ISkipList = typeof skipList\n\nexport interface IXtsCompileOptions {\n watch?: boolean\n skip?: ISkipList\n}\n"],"sourceRoot":"../../src"}
@@ -1,2 +1,3 @@
1
1
  import { PreWork } from 'file-lane/lib/interface/IFileLaneConfig';
2
- export declare const preInstall: PreWork;
2
+ import { IXtsCompileOptions } from '../../interface/ICompileOptions';
3
+ export declare const preInstall: PreWork<IXtsCompileOptions>;
@@ -13,21 +13,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.preInstall = void 0;
16
+ const ColorConsole_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/ColorConsole"));
16
17
  const child_process_1 = require("child_process");
17
18
  const fs_1 = __importDefault(require("fs"));
18
19
  const path_1 = __importDefault(require("path"));
19
- const preInstall = (context) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const preInstall = (context, _, __, compilerOption) => __awaiter(void 0, void 0, void 0, function* () {
21
+ var _a;
22
+ if ((_a = compilerOption === null || compilerOption === void 0 ? void 0 : compilerOption.skip) === null || _a === void 0 ? void 0 : _a.includes('install')) {
23
+ ColorConsole_1.default.log({
24
+ message: `skip install pre-dependencies due to --skip ${compilerOption === null || compilerOption === void 0 ? void 0 : compilerOption.skip.join(',')}`
25
+ });
26
+ return;
27
+ }
20
28
  const { projectPath } = context;
21
29
  const packagePath = path_1.default.resolve(projectPath, 'package.json');
22
30
  const preContent = {
23
31
  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',
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'
32
+ '@mi/ts-framework': 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/ts-framework/-/@mi/ts-framework-1.0.7.tgz',
33
+ '@mi/wasmnizer-ts': 'https://pkgs.d.xiaomi.net:443/artifactory/api/npm/mi-npm/@mi/wasmnizer-ts/-/@mi/wasmnizer-ts-0.0.12.tgz'
26
34
  }
27
35
  };
28
36
  if (!fs_1.default.existsSync(packagePath)) {
29
37
  /** 如果没有 package.json 则创建 */
30
- fs_1.default.writeFileSync(packagePath, JSON.stringify(preContent), {
38
+ fs_1.default.writeFileSync(packagePath, JSON.stringify(preContent, undefined, 2), {
31
39
  encoding: 'utf-8'
32
40
  });
33
41
  }
@@ -41,11 +49,17 @@ const preInstall = (context) => __awaiter(void 0, void 0, void 0, function* () {
41
49
  });
42
50
  }
43
51
  }
52
+ ColorConsole_1.default.log({
53
+ message: 'Installing pre-dependencies. The initial build may take some time, please be patient...'
54
+ });
44
55
  (0, child_process_1.execSync)('npm install', {
45
56
  cwd: projectPath
46
57
  });
47
58
  // 目前ts2wasm不支持@符号
48
59
  fs_1.default.renameSync(path_1.default.resolve(projectPath, 'node_modules/@mi'), path_1.default.resolve(projectPath, 'node_modules/mi'));
60
+ ColorConsole_1.default.log({
61
+ message: 'Dependencies installation complete.'
62
+ });
49
63
  });
50
64
  exports.preInstall = preInstall;
51
65
 
@@ -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,+FAAsE;AACtE,iDAAwC;AAExC,4CAAmB;AACnB,gDAAuB;AAEhB,MAAM,UAAU,GAAgC,CAAO,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE;;IAC9F,IAAI,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC7C,sBAAY,CAAC,GAAG,CAAC;YACf,OAAO,EAAE,+CAA+C,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SACzF,CAAC,CAAA;QACF,OAAM;KACP;IACD,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,yGAAyG;SAC5G;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,sBAAY,CAAC,GAAG,CAAC;QACf,OAAO,EACL,yFAAyF;KAC5F,CAAC,CAAA;IAEF,IAAA,wBAAQ,EAAC,aAAa,EAAE;QACtB,GAAG,EAAE,WAAW;KACjB,CAAC,CAAA;IAEF,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;IAED,sBAAY,CAAC,GAAG,CAAC;QACf,OAAO,EAAE,qCAAqC;KAC/C,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAtDY,QAAA,UAAU,cAsDtB","file":"preInstall.js","sourcesContent":["import ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport { execSync } from 'child_process'\nimport { PreWork } from 'file-lane/lib/interface/IFileLaneConfig'\nimport fs from 'fs'\nimport path from 'path'\nimport { IXtsCompileOptions } from '../../interface/ICompileOptions'\nexport const preInstall: PreWork<IXtsCompileOptions> = async (context, _, __, compilerOption) => {\n if (compilerOption?.skip?.includes('install')) {\n ColorConsole.log({\n message: `skip install pre-dependencies due to --skip ${compilerOption?.skip.join(',')}`\n })\n return\n }\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.7.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.12.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 ColorConsole.log({\n message:\n 'Installing pre-dependencies. The initial build may take some time, please be patient...'\n })\n\n execSync('npm install', {\n cwd: projectPath\n })\n\n // 目前ts2wasm不支持@符号\n fs.renameSync(\n path.resolve(projectPath, 'node_modules/@mi'),\n path.resolve(projectPath, 'node_modules/mi')\n )\n\n ColorConsole.log({\n message: 'Dependencies installation complete.'\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":"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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}\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.7",
3
+ "version": "2.0.1-alpha.9",
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.7",
28
- "@aiot-toolkit/parser": "2.0.1-alpha.7",
27
+ "@aiot-toolkit/generator": "2.0.1-alpha.9",
28
+ "@aiot-toolkit/parser": "2.0.1-alpha.9",
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.7",
33
+ "file-lane": "2.0.1-alpha.9",
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": "9fbe39dfddc2745c97d472827ff10273ab67b499"
46
+ "gitHead": "d593999b9ca345bce8b3ba40a7d11f6685ac03b5"
47
47
  }