@aiot-toolkit/aiotpack 2.0.1-alpha.0 → 2.0.1-alpha.10
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.
- package/lib/config/XtsConfig.d.ts +2 -2
- package/lib/config/XtsConfig.js +6 -2
- package/lib/config/XtsConfig.js.map +1 -1
- package/lib/followWorks/xts/entryTemplate.js +5 -5
- package/lib/followWorks/xts/entryTemplate.js.map +1 -1
- package/lib/followWorks/xts/generateRpk.d.ts +3 -0
- package/lib/followWorks/xts/generateRpk.js +58 -0
- package/lib/followWorks/xts/generateRpk.js.map +1 -0
- package/lib/followWorks/xts/ts2wasm.d.ts +4 -2
- package/lib/followWorks/xts/ts2wasm.js +56 -7
- package/lib/followWorks/xts/ts2wasm.js.map +1 -1
- package/lib/interface/ICompileOptions.d.ts +6 -0
- package/lib/interface/ICompileOptions.js +6 -0
- package/lib/interface/ICompileOptions.js.map +1 -0
- package/lib/preWorks/xts/preInstall.d.ts +3 -0
- package/lib/preWorks/xts/preInstall.js +66 -0
- package/lib/preWorks/xts/preInstall.js.map +1 -0
- package/lib/utils/xts/XtsFollowWorks.d.ts +7 -2
- package/lib/utils/xts/XtsFollowWorks.js +7 -6
- package/lib/utils/xts/XtsFollowWorks.js.map +1 -1
- package/package.json +7 -4
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { IFileLaneConfig } from 'file-lane';
|
|
2
|
-
import { generateEntryFile } from '../followWorks/xts/entryTemplate';
|
|
3
2
|
import XtsLoader from '../loader/xts/XtsLoader';
|
|
4
3
|
/**
|
|
5
4
|
* XtsConfig
|
|
@@ -13,6 +12,7 @@ declare class XtsConfig implements IFileLaneConfig {
|
|
|
13
12
|
loader: (typeof XtsLoader)[];
|
|
14
13
|
}[];
|
|
15
14
|
};
|
|
16
|
-
|
|
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;
|
package/lib/config/XtsConfig.js
CHANGED
|
@@ -4,13 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const entryTemplate_1 = require("../followWorks/xts/entryTemplate");
|
|
7
|
+
const generateRpk_1 = require("../followWorks/xts/generateRpk");
|
|
8
|
+
const ts2wasm_1 = require("../followWorks/xts/ts2wasm");
|
|
7
9
|
const XtsLoader_1 = __importDefault(require("../loader/xts/XtsLoader"));
|
|
10
|
+
const preInstall_1 = require("../preWorks/xts/preInstall");
|
|
8
11
|
/**
|
|
9
12
|
* XtsConfig
|
|
10
13
|
*/
|
|
11
14
|
class XtsConfig {
|
|
12
15
|
constructor() {
|
|
13
|
-
this.exclude = [/node_modules/, /dist/, /build/];
|
|
16
|
+
this.exclude = [/node_modules/, /dist/, /build/, /wasmUnpacked/];
|
|
14
17
|
this.output = 'build';
|
|
15
18
|
this.module = {
|
|
16
19
|
rules: [
|
|
@@ -20,7 +23,8 @@ class XtsConfig {
|
|
|
20
23
|
}
|
|
21
24
|
]
|
|
22
25
|
};
|
|
23
|
-
this.
|
|
26
|
+
this.preWorks = [preInstall_1.preInstall];
|
|
27
|
+
this.followWorks = [entryTemplate_1.generateEntryFile, ts2wasm_1.ts2wasm, generateRpk_1.generateRpk];
|
|
24
28
|
}
|
|
25
29
|
}
|
|
26
30
|
exports.default = XtsConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["config/XtsConfig.ts"],"names":[],"mappings":";;;;;AACA,oEAAoE;AACpE,wEAA+C;
|
|
1
|
+
{"version":3,"sources":["config/XtsConfig.ts"],"names":[],"mappings":";;;;;AACA,oEAAoE;AACpE,gEAA4D;AAC5D,wDAAoD;AACpD,wEAA+C;AAC/C,2DAAuD;AAEvD;;GAEG;AACH,MAAM,SAAS;IAAf;QACE,YAAO,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;QAC3D,WAAM,GAAG,OAAO,CAAA;QAChB,WAAM,GAAG;YACP,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,CAAC,QAAQ,CAAC;oBAChB,MAAM,EAAE,CAAC,mBAAS,CAAC;iBACpB;aACF;SACF,CAAA;QACD,aAAQ,GAAG,CAAC,uBAAU,CAAC,CAAA;QACvB,gBAAW,GAAG,CAAC,iCAAiB,EAAE,iBAAO,EAAE,yBAAW,CAAC,CAAA;IACzD,CAAC;CAAA;AAED,kBAAe,SAAS,CAAA","file":"XtsConfig.js","sourcesContent":["import { IFileLaneConfig } from 'file-lane'\nimport { generateEntryFile } from '../followWorks/xts/entryTemplate'\nimport { generateRpk } from '../followWorks/xts/generateRpk'\nimport { ts2wasm } from '../followWorks/xts/ts2wasm'\nimport XtsLoader from '../loader/xts/XtsLoader'\nimport { preInstall } from '../preWorks/xts/preInstall'\n\n/**\n * XtsConfig\n */\nclass XtsConfig implements IFileLaneConfig {\n exclude = [/node_modules/, /dist/, /build/, /wasmUnpacked/]\n output = 'build'\n module = {\n rules: [\n {\n test: [/\\.xts$/],\n loader: [XtsLoader]\n }\n ]\n }\n preWorks = [preInstall]\n followWorks = [generateEntryFile, ts2wasm, generateRpk]\n}\n\nexport default XtsConfig\n"],"sourceRoot":"../../src"}
|
|
@@ -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
|
|
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}'
|
|
@@ -121,14 +121,14 @@ function generateEntryFile(context) {
|
|
|
121
121
|
const { projectPath, output } = context;
|
|
122
122
|
ColorConsole_1.default.log({
|
|
123
123
|
level: shared_utils_1.LOG_LEVEL.Info,
|
|
124
|
-
message: `
|
|
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
|
}
|
|
@@ -157,7 +157,7 @@ function generateEntryFile(context) {
|
|
|
157
157
|
fs_extra_1.default.writeFileSync(path_1.default.join(projectPath, output, exports.XtsEntryFileName), template);
|
|
158
158
|
ColorConsole_1.default.log({
|
|
159
159
|
level: shared_utils_1.LOG_LEVEL.Info,
|
|
160
|
-
message: `
|
|
160
|
+
message: `Entry file built`
|
|
161
161
|
});
|
|
162
162
|
});
|
|
163
163
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.generateRpk = void 0;
|
|
39
|
+
const path_1 = __importDefault(require("path"));
|
|
40
|
+
const XtsFollowWorks_1 = __importDefault(require("../../utils/xts/XtsFollowWorks"));
|
|
41
|
+
const ColorConsole_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/ColorConsole"));
|
|
42
|
+
const ts2wasm_1 = require("./ts2wasm");
|
|
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
|
+
});
|
|
56
|
+
exports.generateRpk = generateRpk;
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=generateRpk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FollowWork } from 'file-lane/lib/interface/IFileLaneConfig';
|
|
2
|
+
import { IXtsCompileOptions } from '../../interface/ICompileOptions';
|
|
3
|
+
export declare const wasmPackageName = "wasmUnpacked";
|
|
2
4
|
/**
|
|
3
5
|
* 将 __entry__.ts 文件打包成 warm 文件
|
|
4
6
|
* @param context
|
|
5
7
|
*/
|
|
6
|
-
export declare
|
|
8
|
+
export declare const ts2wasm: FollowWork<IXtsCompileOptions>;
|
|
@@ -12,20 +12,69 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ts2wasm = void 0;
|
|
15
|
+
exports.ts2wasm = exports.wasmPackageName = void 0;
|
|
16
|
+
const shared_utils_1 = require("@aiot-toolkit/shared-utils");
|
|
17
|
+
const ColorConsole_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/ColorConsole"));
|
|
18
|
+
const child_process_1 = require("child_process");
|
|
19
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
20
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
21
|
const path_1 = __importDefault(require("path"));
|
|
17
22
|
const entryTemplate_1 = require("./entryTemplate");
|
|
23
|
+
exports.wasmPackageName = 'wasmUnpacked';
|
|
18
24
|
/**
|
|
19
25
|
* 将 __entry__.ts 文件打包成 warm 文件
|
|
20
26
|
* @param context
|
|
21
27
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
const ts2wasm = (context, _, compilerOptions) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
var _a;
|
|
30
|
+
/** 1. 生成 app.wasm 文件 */
|
|
31
|
+
const { projectPath, output } = context;
|
|
32
|
+
const buildDir = path_1.default.resolve(projectPath, output);
|
|
33
|
+
const entryFile = path_1.default.resolve(buildDir, entryTemplate_1.XtsEntryFileName);
|
|
34
|
+
const wasmDir = path_1.default.resolve(projectPath, exports.wasmPackageName);
|
|
35
|
+
fs_1.default.mkdirSync(wasmDir, {
|
|
36
|
+
recursive: true
|
|
27
37
|
});
|
|
28
|
-
|
|
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
|
+
}
|
|
61
|
+
/** 2. 拷贝静态资源 */
|
|
62
|
+
// TODO: ignore 数组待优化
|
|
63
|
+
const files = fast_glob_1.default.sync(`${fast_glob_1.default.convertPathToPattern(projectPath)}/${output}/**/*`, {
|
|
64
|
+
absolute: true,
|
|
65
|
+
ignore: ['**/*.ts', '**/*.xts', '**/package.json', '**/package-lock.json', '**/*.wasm'],
|
|
66
|
+
onlyFiles: true
|
|
67
|
+
});
|
|
68
|
+
for (const from of files) {
|
|
69
|
+
const to = from.replace('/src', '').replace(`/${output}`, `/${exports.wasmPackageName}`);
|
|
70
|
+
fs_1.default.mkdirSync(path_1.default.dirname(to), {
|
|
71
|
+
recursive: true
|
|
72
|
+
});
|
|
73
|
+
fs_1.default.copyFileSync(from, to);
|
|
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'));
|
|
77
|
+
});
|
|
29
78
|
exports.ts2wasm = ts2wasm;
|
|
30
79
|
|
|
31
80
|
//# sourceMappingURL=ts2wasm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["followWorks/xts/ts2wasm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["followWorks/xts/ts2wasm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AACtE,iDAAwC;AACxC,0DAA0B;AAE1B,4CAAmB;AACnB,gDAAuB;AAEvB,mDAAkD;AAErC,QAAA,eAAe,GAAG,cAAc,CAAA;AAE7C;;;GAGG;AACI,MAAM,OAAO,GAAmC,CAAO,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE;;IAC3F,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;IAEF,SAAS,OAAO;QACd,kBAAkB;QAClB,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;QAChF,sBAAY,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,wBAAS,CAAC,IAAI;YACrB,OAAO,EAAE,uCAAuC;SACjD,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAClB,QAAQ,WAAW,0BAA0B,SAAS,OAAO,OAAO,WAAW,EAC/E;YACE,QAAQ,EAAE,OAAO;SAClB,CACF,CAAA;QACD,sBAAY,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,wBAAS,CAAC,IAAI;YACrB,OAAO,EAAE,GAAG;SACb,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC9C,sBAAY,CAAC,GAAG,CAAC;YACf,OAAO,EAAE,yCAAyC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SACpF,CAAC,CAAA;KACH;SAAM;QACL,OAAO,EAAE,CAAA;KACV;IAED,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;AA3DY,QAAA,OAAO,WA2DnB","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 @@
|
|
|
1
|
+
{"version":3,"sources":["interface/ICompileOptions.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAA","file":"ICompileOptions.js","sourcesContent":["export const skipList = ['xts2ts', '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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.preInstall = void 0;
|
|
16
|
+
const ColorConsole_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/ColorConsole"));
|
|
17
|
+
const child_process_1 = require("child_process");
|
|
18
|
+
const fs_1 = __importDefault(require("fs"));
|
|
19
|
+
const path_1 = __importDefault(require("path"));
|
|
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
|
+
}
|
|
28
|
+
const { projectPath } = context;
|
|
29
|
+
const packagePath = path_1.default.resolve(projectPath, 'package.json');
|
|
30
|
+
const preContent = {
|
|
31
|
+
dependencies: {
|
|
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'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
if (!fs_1.default.existsSync(packagePath)) {
|
|
37
|
+
/** 如果没有 package.json 则创建 */
|
|
38
|
+
fs_1.default.writeFileSync(packagePath, JSON.stringify(preContent, undefined, 2), {
|
|
39
|
+
encoding: 'utf-8'
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const pckageContent = require(packagePath);
|
|
44
|
+
if (!pckageContent.dependencies['@mi/ts-framework'] ||
|
|
45
|
+
!pckageContent.dependencies['@mi/wasmnizer-ts']) {
|
|
46
|
+
Object.assign(pckageContent, preContent);
|
|
47
|
+
fs_1.default.writeFileSync(packagePath, JSON.stringify(pckageContent), {
|
|
48
|
+
encoding: 'utf-8'
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
ColorConsole_1.default.log({
|
|
53
|
+
message: 'Installing pre-dependencies. The initial build may take some time, please be patient...'
|
|
54
|
+
});
|
|
55
|
+
(0, child_process_1.execSync)('npm install', {
|
|
56
|
+
cwd: projectPath
|
|
57
|
+
});
|
|
58
|
+
// 目前ts2wasm不支持@符号
|
|
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
|
+
});
|
|
63
|
+
});
|
|
64
|
+
exports.preInstall = preInstall;
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=preInstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { IFileLaneContext } from 'file-lane';
|
|
2
|
+
export interface DefaultZipProjectOptions {
|
|
3
|
+
tarDir?: string;
|
|
4
|
+
ext?: string;
|
|
5
|
+
packageName: string;
|
|
6
|
+
}
|
|
2
7
|
/**
|
|
3
8
|
* XtsFollowWorks
|
|
4
9
|
*/
|
|
@@ -7,7 +12,7 @@ declare class XtsFollowWorks {
|
|
|
7
12
|
* 将项目中build文件夹的内容压缩成zip包,并将压缩产物放到dist文件夹下
|
|
8
13
|
* @param context
|
|
9
14
|
*/
|
|
10
|
-
static defaultZipProject(context: IFileLaneContext): Promise<void>;
|
|
15
|
+
static defaultZipProject(context: IFileLaneContext, options: DefaultZipProjectOptions): Promise<void>;
|
|
11
16
|
/**
|
|
12
17
|
* 将分布式项目按照manifest.json中的配置打包,思路如下:
|
|
13
18
|
* 1. 获取manifest中aspect的路由配置
|
|
@@ -24,6 +29,6 @@ declare class XtsFollowWorks {
|
|
|
24
29
|
* @param zipName
|
|
25
30
|
* @returns
|
|
26
31
|
*/
|
|
27
|
-
static getFilePath(projectPath: string, outputDir?: string, zipName?: string): string;
|
|
32
|
+
static getFilePath(projectPath: string, outputDir?: string, zipName?: string, ext?: string): string;
|
|
28
33
|
}
|
|
29
34
|
export default XtsFollowWorks;
|
|
@@ -26,9 +26,10 @@ class XtsFollowWorks {
|
|
|
26
26
|
* 将项目中build文件夹的内容压缩成zip包,并将压缩产物放到dist文件夹下
|
|
27
27
|
* @param context
|
|
28
28
|
*/
|
|
29
|
-
static defaultZipProject(context) {
|
|
29
|
+
static defaultZipProject(context, options) {
|
|
30
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const {
|
|
31
|
+
const { projectPath } = context;
|
|
32
|
+
const output = options.tarDir || context.output;
|
|
32
33
|
const buildPath = path_1.default.join(projectPath, output);
|
|
33
34
|
const zipPath = path_1.default.join(projectPath, 'dist');
|
|
34
35
|
// buildPath必须是真实文件夹路径
|
|
@@ -43,8 +44,8 @@ class XtsFollowWorks {
|
|
|
43
44
|
fs_extra_1.default.ensureDirSync(zipPath);
|
|
44
45
|
// 清空dist文件夹
|
|
45
46
|
fs_extra_1.default.emptyDirSync(zipPath);
|
|
46
|
-
const filePath = XtsFollowWorks.getFilePath(projectPath);
|
|
47
|
-
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]);
|
|
48
49
|
}
|
|
49
50
|
catch (err) {
|
|
50
51
|
ColorConsole_1.default.log({ level: shared_utils_1.LOG_LEVEL.Error, message: err.message });
|
|
@@ -138,8 +139,8 @@ class XtsFollowWorks {
|
|
|
138
139
|
* @param zipName
|
|
139
140
|
* @returns
|
|
140
141
|
*/
|
|
141
|
-
static getFilePath(projectPath, outputDir = 'dist', zipName) {
|
|
142
|
-
zipName = zipName ? `${zipName}
|
|
142
|
+
static getFilePath(projectPath, outputDir = 'dist', zipName, ext = 'zip') {
|
|
143
|
+
zipName = zipName ? `${zipName}.${ext}` : `${path_1.default.basename(projectPath)}.${ext}`;
|
|
143
144
|
const zipPath = path_1.default.join(projectPath, outputDir);
|
|
144
145
|
return path_1.default.join(zipPath, zipName);
|
|
145
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["utils/xts/XtsFollowWorks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AAEtE,oFAA2D;AAC3D,wDAAyB;AACzB,gDAAuB;AAEvB,sEAA6C;
|
|
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.
|
|
3
|
+
"version": "2.0.1-alpha.10",
|
|
4
4
|
"description": "The process tool for packaging aiot projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aiotpack"
|
|
@@ -24,11 +24,13 @@
|
|
|
24
24
|
"test": "node ./__tests__/aiotpack.test.js"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aiot-toolkit/
|
|
27
|
+
"@aiot-toolkit/generator": "2.0.1-alpha.10",
|
|
28
|
+
"@aiot-toolkit/parser": "2.0.1-alpha.10",
|
|
28
29
|
"@hap-toolkit/aaptjs": "^2.0.0",
|
|
29
30
|
"babel-loader": "^9.1.3",
|
|
30
31
|
"del": "^4.1.0",
|
|
31
|
-
"
|
|
32
|
+
"fast-glob": "^3.3.2",
|
|
33
|
+
"file-lane": "2.0.1-alpha.10",
|
|
32
34
|
"file-loader": "^6.2.0",
|
|
33
35
|
"fs-extra": "^11.2.0",
|
|
34
36
|
"jsrsasign": "^7.2.2",
|
|
@@ -40,5 +42,6 @@
|
|
|
40
42
|
"devDependencies": {
|
|
41
43
|
"@types/jsrsasign": "^10.5.12",
|
|
42
44
|
"@types/webpack-sources": "^3.2.3"
|
|
43
|
-
}
|
|
45
|
+
},
|
|
46
|
+
"gitHead": "28da610ac477037586ef355c9382e8a20e81477c"
|
|
44
47
|
}
|