@cocos/ccbuild 1.0.0 → 1.1.0

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/build-engine/engine-js/index.d.ts.map +1 -1
  3. package/lib/build-engine/engine-js/index.js +14 -59
  4. package/lib/build-engine/engine-js/index.js.map +1 -1
  5. package/lib/build-engine/engine-js/rollup-plugins/{asset-ref.d.ts → external-wasm-loader.d.ts} +11 -11
  6. package/lib/build-engine/engine-js/rollup-plugins/external-wasm-loader.d.ts.map +1 -0
  7. package/lib/build-engine/engine-js/rollup-plugins/{asset-ref.js → external-wasm-loader.js} +30 -26
  8. package/lib/build-engine/engine-js/rollup-plugins/external-wasm-loader.js.map +1 -0
  9. package/lib/build-engine/engine-ts/engine-builder.d.ts +4 -0
  10. package/lib/build-engine/engine-ts/engine-builder.d.ts.map +1 -1
  11. package/lib/build-engine/engine-ts/engine-builder.js +96 -14
  12. package/lib/build-engine/engine-ts/engine-builder.js.map +1 -1
  13. package/lib/build-engine/engine-ts/field-decorator-helper.d.ts +10 -0
  14. package/lib/build-engine/engine-ts/field-decorator-helper.d.ts.map +1 -0
  15. package/lib/build-engine/engine-ts/field-decorator-helper.js +55 -0
  16. package/lib/build-engine/engine-ts/field-decorator-helper.js.map +1 -0
  17. package/lib/build-engine/engine-ts/plugins/external-wasm-loader.d.ts +7 -0
  18. package/lib/build-engine/engine-ts/plugins/external-wasm-loader.d.ts.map +1 -0
  19. package/lib/build-engine/engine-ts/plugins/external-wasm-loader.js +66 -0
  20. package/lib/build-engine/engine-ts/plugins/external-wasm-loader.js.map +1 -0
  21. package/lib/build-engine/engine-ts/plugins/interface.d.ts +21 -0
  22. package/lib/build-engine/engine-ts/plugins/interface.d.ts.map +1 -0
  23. package/lib/build-engine/engine-ts/plugins/interface.js +2 -0
  24. package/lib/build-engine/engine-ts/plugins/interface.js.map +1 -0
  25. package/lib/stats-query/index.d.ts +1 -0
  26. package/lib/stats-query/index.d.ts.map +1 -1
  27. package/lib/stats-query/index.js +5 -1
  28. package/lib/stats-query/index.js.map +1 -1
  29. package/lib/utils.d.ts +1 -0
  30. package/lib/utils.d.ts.map +1 -1
  31. package/lib/utils.js +6 -1
  32. package/lib/utils.js.map +1 -1
  33. package/package.json +5 -3
  34. package/static/helper-file-decorator.ts +21 -0
  35. package/lib/build-engine/engine-js/rollup-plugins/asset-ref.d.ts.map +0 -1
  36. package/lib/build-engine/engine-js/rollup-plugins/asset-ref.js.map +0 -1
  37. package/lib/build-engine/engine-js/rollup-plugins/asset-url.d.ts +0 -8
  38. package/lib/build-engine/engine-js/rollup-plugins/asset-url.d.ts.map +0 -1
  39. package/lib/build-engine/engine-js/rollup-plugins/asset-url.js +0 -93
  40. package/lib/build-engine/engine-js/rollup-plugins/asset-url.js.map +0 -1
  41. package/lib/build-engine/engine-js/rollup-plugins/code-asset.d.ts +0 -29
  42. package/lib/build-engine/engine-js/rollup-plugins/code-asset.d.ts.map +0 -1
  43. package/lib/build-engine/engine-js/rollup-plugins/code-asset.js +0 -136
  44. package/lib/build-engine/engine-js/rollup-plugins/code-asset.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @cocos/ccbuild
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 279e42a: feat: support engine WASM module building
8
+
9
+ ### Patch Changes
10
+
11
+ - 6411ef4: feat: support CCBuildTsFieldDecoratorHelper
12
+
13
+ ## 1.0.1-alpha.0
14
+
15
+ ### Patch Changes
16
+
17
+ - d94d769: feat: support CCBuildTsFieldDecoratorHelper
18
+
3
19
  ## 1.0.0
4
20
 
5
21
  ### Major Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/build-engine/engine-js/index.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAsB3C,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAmc7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/build-engine/engine-js/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAuB3C,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAqZ7F"}
@@ -56,10 +56,8 @@ const fs_1 = __importDefault(require("fs"));
56
56
  const ts_paths_1 = __importDefault(require("./rollup-plugins/ts-paths"));
57
57
  const remove_deprecated_features_1 = __importDefault(require("./rollup-plugins/remove-deprecated-features"));
58
58
  const stats_query_1 = require("../../stats-query");
59
- const asset_ref_1 = require("./rollup-plugins/asset-ref");
60
- const code_asset_1 = require("./rollup-plugins/code-asset");
61
- const asset_url_1 = require("./rollup-plugins/asset-url");
62
59
  const utils_1 = require("../../utils");
60
+ const external_wasm_loader_1 = require("./rollup-plugins/external-wasm-loader");
63
61
  // import * as decoratorRecorder from './babel-plugins/decorator-parser';
64
62
  const realPath = (function () {
65
63
  const realpath = typeof fs_1.default.realpath.native === 'function' ? fs_1.default.realpath.native : fs_1.default.realpath;
@@ -78,7 +76,7 @@ function makePathEqualityKey(path) {
78
76
  return process.platform === 'win32' ? path.toLocaleLowerCase() : path;
79
77
  }
80
78
  function buildJsEngine(options) {
81
- var _a, _b, _c, _d, _e, _f;
79
+ var _a, _b, _c, _d, _e;
82
80
  return __awaiter(this, void 0, void 0, function* () {
83
81
  const doUglify = !!options.compress;
84
82
  const engineRoot = path_1.default.resolve(options.engine);
@@ -130,8 +128,6 @@ function buildJsEngine(options) {
130
128
  return result;
131
129
  }, {});
132
130
  const featureUnits = statsQuery.getUnitsOfFeatures(features);
133
- // Wether use webgpu
134
- const useWebGPU = !!((_d = options.flags) === null || _d === void 0 ? void 0 : _d.WEBGPU);
135
131
  const rpVirtualOptions = {};
136
132
  const vmInternalConstants = statsQuery.constantManager.exportStaticConstants({
137
133
  platform: options.platform,
@@ -141,7 +137,9 @@ function buildJsEngine(options) {
141
137
  console.debug(`Module source "internal-constants":\n${vmInternalConstants}`);
142
138
  rpVirtualOptions['internal:constants'] = vmInternalConstants;
143
139
  rpVirtualOptions[creator_programming_babel_preset_cc_1.helpers.CC_HELPER_MODULE] = creator_programming_babel_preset_cc_1.helpers.generateHelperModuleSource();
144
- const forceStandaloneModules = ['wait-for-ammo-instantiation', 'decorator'];
140
+ // for some modules that we need to instantiate before cc module
141
+ // const forceStandaloneModules = ['wait-for-ammo-instantiation'];
142
+ const forceStandaloneModules = [];
145
143
  let rollupEntries;
146
144
  if (split) {
147
145
  rollupEntries = featureUnits.reduce((result, featureUnit) => {
@@ -167,7 +165,7 @@ function buildJsEngine(options) {
167
165
  console.debug(`Module source "cc":\n${rpVirtualOptions.cc}`);
168
166
  }
169
167
  const presetEnvOptions = {
170
- loose: (_e = options.loose) !== null && _e !== void 0 ? _e : true,
168
+ loose: (_d = options.loose) !== null && _d !== void 0 ? _d : true,
171
169
  // We need explicitly specified targets.
172
170
  // Ignore it to avoid the engine's parent dirs contain unexpected config.
173
171
  ignoreBrowserslistConfig: true,
@@ -194,6 +192,7 @@ function buildJsEngine(options) {
194
192
  /node_modules[/\\]@cocos[/\\]ammo/,
195
193
  /node_modules[/\\]@cocos[/\\]cannon/,
196
194
  /node_modules[/\\]@cocos[/\\]physx/,
195
+ /\.asm\.js/,
197
196
  ],
198
197
  comments: false,
199
198
  overrides: [{
@@ -221,22 +220,13 @@ function buildJsEngine(options) {
221
220
  // babelOptions.presets?.push([() => ({ plugins: [[decoratorRecorder]] })]);
222
221
  // }
223
222
  const rollupPlugins = [];
224
- const codeAssetMapping = {};
225
- if (rollupFormat === 'system') {
226
- // `@cocos/physx` is too big(~6Mb) and cause memory crash.
227
- // Our temporary solution: exclude @cocos/physx from bundling and connect it with source map.
228
- rollupPlugins.push((0, code_asset_1.codeAsset)({
229
- resultMapping: codeAssetMapping,
230
- include: [
231
- /node_modules[/\\]@cocos[/\\]physx/,
232
- ],
233
- }));
234
- }
235
223
  if (options.noDeprecatedFeatures) {
236
224
  rollupPlugins.push((0, remove_deprecated_features_1.default)(typeof options.noDeprecatedFeatures === 'string' ? options.noDeprecatedFeatures : undefined));
237
225
  }
238
- rollupPlugins.push((0, asset_ref_1.assetRef)({
239
- format: options.assetURLFormat,
226
+ rollupPlugins.push((0, external_wasm_loader_1.externalWasmLoader)({
227
+ externalRoot: path_1.default.join(engineRoot, 'native/external'),
228
+ supportWasm: buildTimeConstants.WASM_SUPPORT_MODE !== 0,
229
+ format: 'relative-from-chunk',
240
230
  }), {
241
231
  name: '@cocos/ccbuild|module-overrides',
242
232
  resolveId(source, importer) {
@@ -267,6 +257,7 @@ function buildJsEngine(options) {
267
257
  }), (0, plugin_commonjs_1.default)({
268
258
  include: [
269
259
  /node_modules[/\\]/,
260
+ /asm\.js/,
270
261
  ],
271
262
  sourceMap: false,
272
263
  }), (0, plugin_babel_1.default)(Object.assign({ skipPreflightCheck: true }, babelOptions)));
@@ -333,10 +324,6 @@ function buildJsEngine(options) {
333
324
  }
334
325
  defaultHandler(warning);
335
326
  };
336
- rollupPlugins.unshift((0, asset_url_1.assetUrl)({
337
- engineRoot,
338
- useWebGPU,
339
- }));
340
327
  const rollupOptions = {
341
328
  input: rollupEntries,
342
329
  plugins: rollupPlugins,
@@ -347,39 +334,8 @@ function buildJsEngine(options) {
347
334
  if (perf) {
348
335
  rollupOptions.perf = true;
349
336
  }
350
- const bulletAsmJsModule = yield nodeResolveAsync('@cocos/bullet/bullet.cocos.js');
351
- const wasmBinaryPath = path_1.default.join(bulletAsmJsModule, '..', 'bullet.wasm.wasm');
352
- if (ammoJsWasm === true) {
353
- rpVirtualOptions['@cocos/bullet'] = `
354
- import wasmBinaryURL from '${(0, asset_ref_1.pathToAssetRefURL)(wasmBinaryPath)}';
355
- export const bulletType = 'wasm';
356
- export default wasmBinaryURL;
357
- `;
358
- }
359
- else if (ammoJsWasm === 'fallback') {
360
- rpVirtualOptions['@cocos/bullet'] = `
361
- export async function initialize(isWasm) {
362
- let ammo;
363
- if (isWasm) {
364
- ammo = await import('${(0, asset_ref_1.pathToAssetRefURL)(wasmBinaryPath)}');
365
- } else {
366
- ammo = await import('${(0, utils_1.filePathToModuleRequest)(bulletAsmJsModule)}');
367
- }
368
- return ammo.default;
369
- }
370
- export const bulletType = 'fallback';
371
- export default initialize;
372
- `;
373
- }
374
- else {
375
- rpVirtualOptions['@cocos/bullet'] = `
376
- import Bullet from '${(0, utils_1.filePathToModuleRequest)(bulletAsmJsModule)}';
377
- export const bulletType = 'asmjs';
378
- export default Bullet;
379
- `;
380
- }
381
337
  const rollupBuild = yield rollup.rollup(rollupOptions);
382
- const timing = (_f = rollupBuild.getTimings) === null || _f === void 0 ? void 0 : _f.call(rollupBuild);
338
+ const timing = (_e = rollupBuild.getTimings) === null || _e === void 0 ? void 0 : _e.call(rollupBuild);
383
339
  if (timing) {
384
340
  console.debug(`==== Performance ====`);
385
341
  console.debug(JSON.stringify(timing));
@@ -394,7 +350,7 @@ export default Bullet;
394
350
  const stat = yield fs_extra_1.default.stat(watchFile);
395
351
  watchFiles[watchFile] = stat.mtimeMs;
396
352
  }
397
- catch (_g) {
353
+ catch (_f) {
398
354
  // the `watchFiles` may contain non-fs modules.
399
355
  }
400
356
  })));
@@ -428,7 +384,6 @@ export default Bullet;
428
384
  }
429
385
  }
430
386
  Object.assign(result.exports, validEntryChunks);
431
- Object.assign(result.chunkAliases, codeAssetMapping);
432
387
  result.dependencyGraph = {};
433
388
  for (const output of rollupOutput.output) {
434
389
  if (output.type === 'chunk') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/build-engine/engine-js/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/build-engine/engine-js/index.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import type * as rollup from 'rollup';
2
2
  /**
3
- * This plugin enable to locate non-code assets in their path or URLs:
4
- * ```ts
5
- * import wasm from `asset-ref-url-to-C:/foo.wasm`;
6
- * ```
7
- * is equivalent to, for example:
8
- * ```ts
9
- * const wasm = 'path-to-<C:/foo.wasm>-relative-to-<outDir>-after-bundle';
10
- * ```
11
- * You can call `pathToAssetRefURL()` to convert file path to asset ref URL.
3
+ * This plugin enable to load script or wasm with url based on 'external://' origin.
12
4
  */
13
- export declare function assetRef(options: assetRef.Options): rollup.Plugin;
5
+ export declare function externalWasmLoader(options: assetRef.Options): rollup.Plugin;
14
6
  export declare namespace assetRef {
15
7
  interface Options {
8
+ /**
9
+ * the root path of external repository
10
+ */
11
+ externalRoot: string;
12
+ /**
13
+ * whether support wasm, if false, the plugin won't emit the wasm asset to reduce engine package size.
14
+ */
15
+ supportWasm: boolean;
16
16
  format?: Format;
17
17
  }
18
18
  /**
@@ -34,4 +34,4 @@ export declare namespace assetRef {
34
34
  * @param file File path in absolute.
35
35
  */
36
36
  export declare function pathToAssetRefURL(file: string): string;
37
- //# sourceMappingURL=asset-ref.d.ts.map
37
+ //# sourceMappingURL=external-wasm-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-wasm-loader.d.ts","sourceRoot":"","sources":["../../../../src/build-engine/engine-js/rollup-plugins/external-wasm-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAUtC;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAqD5E;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAC9B,UAAiB,OAAO;QACpB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,WAAW,EAAE,OAAO,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;IAED;;;;;;;;;;;OAWG;IACH,KAAY,MAAM,GACZ,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,MAAM,UAE9C"}
@@ -12,28 +12,23 @@ 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.pathToAssetRefURL = exports.assetRef = void 0;
15
+ exports.pathToAssetRefURL = exports.externalWasmLoader = void 0;
16
16
  const url_1 = require("url");
17
17
  const fs_extra_1 = __importDefault(require("fs-extra"));
18
18
  const path_1 = __importDefault(require("path"));
19
+ const externalOrigin = 'external:';
20
+ function normalizePath(path) {
21
+ return path.replace(/\\/g, '/');
22
+ }
19
23
  /**
20
- * This plugin enable to locate non-code assets in their path or URLs:
21
- * ```ts
22
- * import wasm from `asset-ref-url-to-C:/foo.wasm`;
23
- * ```
24
- * is equivalent to, for example:
25
- * ```ts
26
- * const wasm = 'path-to-<C:/foo.wasm>-relative-to-<outDir>-after-bundle';
27
- * ```
28
- * You can call `pathToAssetRefURL()` to convert file path to asset ref URL.
24
+ * This plugin enable to load script or wasm with url based on 'external://' origin.
29
25
  */
30
- function assetRef(options) {
26
+ function externalWasmLoader(options) {
31
27
  return {
32
- name: '@cocos/ccbuild|load-asset',
33
- // eslint-disable-next-line @typescript-eslint/require-await
28
+ name: '@cocos/ccbuild|external-loader',
34
29
  resolveId(source, importer) {
35
30
  return __awaiter(this, void 0, void 0, function* () {
36
- if (source.startsWith(assetPrefix)) {
31
+ if (source.startsWith(externalOrigin)) {
37
32
  return source;
38
33
  }
39
34
  return null;
@@ -41,16 +36,25 @@ function assetRef(options) {
41
36
  },
42
37
  load(id) {
43
38
  return __awaiter(this, void 0, void 0, function* () {
44
- if (id.startsWith(assetPrefix)) {
45
- const pathname = id.substr(assetPrefix.length);
46
- const path = (0, url_1.fileURLToPath)(`file://${pathname}`);
47
- const referenceId = this.emitFile({
48
- type: 'asset',
49
- name: path_1.default.basename(path),
50
- // fileName: path,
51
- source: yield fs_extra_1.default.readFile(path),
52
- });
53
- return `export default import.meta.ROLLUP_FILE_URL_${referenceId};`;
39
+ if (id.startsWith(externalOrigin)) {
40
+ let filePath = normalizePath(path_1.default.join(options.externalRoot, id.substring(externalOrigin.length)));
41
+ if (filePath.endsWith('.wasm')) {
42
+ if (options.supportWasm) {
43
+ const referenceId = this.emitFile({
44
+ type: 'asset',
45
+ name: path_1.default.basename(filePath),
46
+ // fileName: path,
47
+ source: yield fs_extra_1.default.readFile(filePath),
48
+ });
49
+ return `export default import.meta.ROLLUP_FILE_URL_${referenceId};`;
50
+ }
51
+ else {
52
+ return `export default '';`;
53
+ }
54
+ }
55
+ else {
56
+ return yield fs_extra_1.default.readFile(filePath, 'utf8');
57
+ }
54
58
  }
55
59
  return null;
56
60
  });
@@ -75,7 +79,7 @@ function assetRef(options) {
75
79
  },
76
80
  };
77
81
  }
78
- exports.assetRef = assetRef;
82
+ exports.externalWasmLoader = externalWasmLoader;
79
83
  /**
80
84
  * Convert the file path to asset ref URL.
81
85
  * @param file File path in absolute.
@@ -85,4 +89,4 @@ function pathToAssetRefURL(file) {
85
89
  }
86
90
  exports.pathToAssetRefURL = pathToAssetRefURL;
87
91
  const assetPrefix = 'asset:';
88
- //# sourceMappingURL=asset-ref.js.map
92
+ //# sourceMappingURL=external-wasm-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-wasm-loader.js","sourceRoot":"","sources":["../../../../src/build-engine/engine-js/rollup-plugins/external-wasm-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,6BAAwD;AACxD,wDAA0B;AAC1B,gDAAsB;AAEtB,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,SAAS,aAAa,CAAE,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAE,OAAyB;IACzD,OAAO;QACH,IAAI,EAAE,gCAAgC;QAEhC,SAAS,CAAQ,MAAM,EAAE,QAAQ;;gBACnC,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBACnC,OAAO,MAAM,CAAC;iBACjB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SAAA;QAEK,IAAI,CAAE,EAAE;;gBACV,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBAC/B,IAAI,QAAQ,GAAG,aAAa,CAAC,cAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACjG,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;wBAC5B,IAAI,OAAO,CAAC,WAAW,EAAE;4BACrB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;gCAC9B,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,cAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gCAC3B,kBAAkB;gCAClB,MAAM,EAAE,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;6BACtC,CAAC,CAAC;4BAEH,OAAO,8CAA8C,WAAW,GAAG,CAAC;yBACvE;6BAAM;4BACH,OAAO,oBAAoB,CAAC;yBAC/B;qBACJ;yBAAM;wBACH,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC9C;iBACJ;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SAAA;QAED,2DAA2D;QAC3D,cAAc,CAAE;QACZ,kGAAkG;QAClG,QAAQ;QACR,gDAAgD;QAChD,uDAAuD;QACvD,iFAAiF;QACjF,YAAY,GACf;YACG,QAAQ,OAAO,CAAC,MAAM,EAAE;gBACxB,KAAK,qBAAqB;oBACtB,OAAO,IAAI,YAAY,GAAG,CAAC;gBAC/B,KAAK,mBAAmB;oBACpB,OAAO,IAAI,QAAQ,GAAG,CAAC;gBAC3B,KAAK,kBAAkB,CAAC;gBAAC;oBACrB,OAAO,SAAS,CAAC,CAAC,yDAAyD;aAC9E;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AArDD,gDAqDC;AAiCD;;;GAGG;AACH,SAAgB,iBAAiB,CAAE,IAAY;IAC3C,OAAO,GAAG,WAAW,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAFD,8CAEC;AAED,MAAM,WAAW,GAAG,QAAQ,CAAC"}
@@ -38,7 +38,11 @@ export declare class EngineBuilder {
38
38
  private _buildResult;
39
39
  private _resolveExtension;
40
40
  private _renameMap;
41
+ private _filedDecoratorHelper;
42
+ private _plugins;
43
+ private _excludeTransform;
41
44
  build(options: EngineBuilder.IBuildOptions): Promise<EngineBuilder.IBuildResult>;
45
+ private _initPlugins;
42
46
  private _initOptions;
43
47
  private _handleId;
44
48
  private _getOverrideId;
@@ -1 +1 @@
1
- {"version":3,"file":"engine-builder.d.ts","sourceRoot":"","sources":["../../../src/build-engine/engine-ts/engine-builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAS/C,OAAO,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;AAGpD,yBAAiB,aAAa,CAAC;IAE3B,UAAiB,aAAa;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC;QACvC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC;QAC/B,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;IACD,UAAiB,YAAY;QACzB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;KACvC;IACD,UAAiB,aAAa;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC;KACZ;IACD,UAAiB,gBAAgB;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,SAAS,EAAE,MAAM,EAAE,CAAC;KACvB;CACJ;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,mBAAmB,CAMzB;IACF,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,iBAAiB,CAAqC;IAG9D,OAAO,CAAC,UAAU,CAIhB;IAEW,KAAK,CAAE,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;YAyDhF,YAAY;IA6D1B,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,UAAU;YA8KJ,WAAW;IAyBzB,OAAO,CAAC,WAAW;YA+BL,UAAU;IAoBxB,OAAO,CAAC,mBAAmB;CAsB9B"}
1
+ {"version":3,"file":"engine-builder.d.ts","sourceRoot":"","sources":["../../../src/build-engine/engine-ts/engine-builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAS/C,OAAO,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;AAKpD,yBAAiB,aAAa,CAAC;IAE3B,UAAiB,aAAa;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC;QACvC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC;QAC/B,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;IACD,UAAiB,YAAY;QACzB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;KACvC;IACD,UAAiB,aAAa;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC;KACZ;IACD,UAAiB,gBAAgB;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,SAAS,EAAE,MAAM,EAAE,CAAC;KACvB;CACJ;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,mBAAmB,CAMzB;IACF,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,iBAAiB,CAAqC;IAG9D,OAAO,CAAC,UAAU,CAIhB;IACF,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,iBAAiB,CAEvB;IAEW,KAAK,CAAE,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;IA0D9F,OAAO,CAAC,YAAY;YAQN,YAAY;IA8D1B,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,UAAU;YAmOJ,WAAW;IAyBzB,OAAO,CAAC,WAAW;YA+BL,UAAU;IAoBxB,OAAO,CAAC,mBAAmB;CAsB9B"}
@@ -51,6 +51,8 @@ const eslint_1 = require("eslint");
51
51
  const dedent_1 = __importDefault(require("dedent"));
52
52
  const glob_1 = require("glob");
53
53
  var t = babel.types;
54
+ const field_decorator_helper_1 = require("./field-decorator-helper");
55
+ const external_wasm_loader_1 = require("./plugins/external-wasm-loader");
54
56
  class EngineBuilder {
55
57
  constructor() {
56
58
  this._entries = [];
@@ -74,6 +76,11 @@ class EngineBuilder {
74
76
  Path: 'PathAlias',
75
77
  struct: 'structAlias',
76
78
  };
79
+ this._filedDecoratorHelper = new field_decorator_helper_1.FiledDecoratorHelper();
80
+ this._plugins = [];
81
+ this._excludeTransform = [
82
+ /external\:/
83
+ ];
77
84
  }
78
85
  build(options) {
79
86
  return __awaiter(this, void 0, void 0, function* () {
@@ -88,6 +95,7 @@ class EngineBuilder {
88
95
  // pass1: build ts for native engine
89
96
  console.log('[Build Engine]: pass1 - traverse and compile modules');
90
97
  console.time('pass1');
98
+ this._initPlugins(options);
91
99
  yield this._initOptions(options);
92
100
  handleIdList(this._entries);
93
101
  console.timeEnd('pass1');
@@ -126,6 +134,11 @@ class EngineBuilder {
126
134
  return this._buildResult;
127
135
  });
128
136
  }
137
+ _initPlugins(options) {
138
+ this._plugins.push((0, external_wasm_loader_1.externalWasmLoaderFactory)({
139
+ engineRoot: options.root,
140
+ }));
141
+ }
129
142
  _initOptions(options) {
130
143
  return __awaiter(this, void 0, void 0, function* () {
131
144
  this._options = options;
@@ -176,6 +189,7 @@ class EngineBuilder {
176
189
  mode,
177
190
  flags: flagConfig,
178
191
  });
192
+ this._virtual2code[this._filedDecoratorHelper.getModuleName()] = this._filedDecoratorHelper.genModuleSource();
179
193
  // TODO: resolve node modules
180
194
  this._virtual2code['@cocos/box2d'] = 'export {}';
181
195
  this._virtual2code['@cocos/bullet'] = 'export {}';
@@ -219,7 +233,14 @@ class EngineBuilder {
219
233
  return handleResult;
220
234
  }
221
235
  _getOverrideId(id, importer) {
236
+ var _a;
222
237
  let overrideId;
238
+ for (let p of this._plugins) {
239
+ overrideId = (_a = p.transformId) === null || _a === void 0 ? void 0 : _a.call(p, id, importer);
240
+ if (overrideId) {
241
+ return overrideId;
242
+ }
243
+ }
223
244
  if (id in this._virtualOverrides) {
224
245
  overrideId = this._virtualOverrides[id];
225
246
  }
@@ -239,7 +260,13 @@ class EngineBuilder {
239
260
  return overrideId;
240
261
  }
241
262
  _resolve(id, importer) {
242
- var _a;
263
+ var _a, _b;
264
+ for (let p of this._plugins) {
265
+ const resolvedId = (_a = p.resolve) === null || _a === void 0 ? void 0 : _a.call(p, id, importer);
266
+ if (resolvedId) {
267
+ return resolvedId;
268
+ }
269
+ }
243
270
  if (!importer) {
244
271
  return id; // entry
245
272
  }
@@ -258,7 +285,7 @@ class EngineBuilder {
258
285
  else {
259
286
  const resolved = this._resolveRelative(id, importer);
260
287
  if (resolved) {
261
- return (_a = this._moduleOverrides[resolved]) !== null && _a !== void 0 ? _a : resolved;
288
+ return (_b = this._moduleOverrides[resolved]) !== null && _b !== void 0 ? _b : resolved;
262
289
  }
263
290
  }
264
291
  }
@@ -280,6 +307,13 @@ class EngineBuilder {
280
307
  }
281
308
  }
282
309
  _load(id) {
310
+ var _a;
311
+ for (let p of this._plugins) {
312
+ const loadedCode = (_a = p.load) === null || _a === void 0 ? void 0 : _a.call(p, id);
313
+ if (loadedCode) {
314
+ return loadedCode;
315
+ }
316
+ }
283
317
  if (fs.existsSync(id)) {
284
318
  let code = fs.readFileSync(id, 'utf8');
285
319
  if (id.endsWith('.json')) {
@@ -292,11 +326,20 @@ class EngineBuilder {
292
326
  }
293
327
  }
294
328
  _transform(file, code) {
329
+ file = (0, path_utils_1.normalizePath)(file);
330
+ for (let ex of this._excludeTransform) {
331
+ if (ex.test(file)) {
332
+ return {
333
+ code,
334
+ depIdList: [],
335
+ };
336
+ }
337
+ }
295
338
  const depIdList = [];
296
339
  if (ps.extname(file) === '.js') {
297
340
  const dtsFile = (0, path_utils_1.toExtensionLess)(file) + '.d.ts';
298
341
  if (fs.existsSync(dtsFile)) {
299
- depIdList.push(dtsFile);
342
+ depIdList.push(dtsFile); // emit the .d.ts file
300
343
  }
301
344
  }
302
345
  const importExportVisitor = (path) => {
@@ -316,7 +359,9 @@ class EngineBuilder {
316
359
  if (!relativePath.startsWith('.')) {
317
360
  relativePath = './' + relativePath;
318
361
  }
319
- relativePath = relativePath.slice(0, -3); // remove '.ts'
362
+ if (ps.extname(relativePath) === '.ts') {
363
+ relativePath = relativePath.slice(0, -3); // remove '.ts'
364
+ }
320
365
  // traverse to transform specifier
321
366
  (0, traverse_1.default)(path.node, {
322
367
  StringLiteral(path) {
@@ -338,6 +383,7 @@ class EngineBuilder {
338
383
  ImportSpecifier: importExportSpecifier,
339
384
  });
340
385
  };
386
+ const self = this;
341
387
  const transformResult = babel.transformSync(code, {
342
388
  configFile: false,
343
389
  plugins: [
@@ -350,16 +396,52 @@ class EngineBuilder {
350
396
  () => {
351
397
  return {
352
398
  name: 'custom-transform',
399
+ pre(file) {
400
+ const pluginPass = this;
401
+ (0, traverse_1.default)(file.ast, {
402
+ ClassProperty(path) {
403
+ const decoratorsPath = path.get('decorators');
404
+ if (Array.isArray(decoratorsPath)) {
405
+ const propertyValuePath = path.get('value');
406
+ const helperIdentifier = self._filedDecoratorHelper.addHelper(pluginPass.file);
407
+ decoratorsPath.forEach(decPath => {
408
+ const expPath = decPath.get('expression');
409
+ const type = expPath.node.type;
410
+ if (type === 'CallExpression') {
411
+ const decName = expPath.node.callee.name;
412
+ const args = expPath.node.arguments;
413
+ decPath.replaceWith(t.decorator(t.callExpression(helperIdentifier, [
414
+ t.identifier(decName),
415
+ (propertyValuePath.node ?
416
+ t.arrowFunctionExpression([], propertyValuePath.node) :
417
+ t.nullLiteral()),
418
+ ...args
419
+ ])));
420
+ }
421
+ else if (type === 'Identifier') {
422
+ const decName = expPath.node.name;
423
+ decPath.replaceWith(t.decorator(t.callExpression(helperIdentifier, [
424
+ t.identifier(decName),
425
+ (propertyValuePath.node ?
426
+ t.arrowFunctionExpression([], propertyValuePath.node) :
427
+ t.nullLiteral())
428
+ ])));
429
+ }
430
+ });
431
+ }
432
+ },
433
+ });
434
+ },
353
435
  visitor: {
354
436
  ImportDeclaration: importExportVisitor,
355
437
  ExportDeclaration: importExportVisitor,
356
438
  // TODO: here we rename class Rect and Path
357
- CallExpression: (path) => {
439
+ CallExpression(path) {
358
440
  if (path.node.callee.type === 'MemberExpression') {
359
441
  const memberExpressionPath = path.get('callee');
360
442
  const objectPath = memberExpressionPath.get('object');
361
443
  const name = objectPath.node.name;
362
- const alias = this._renameMap[name];
444
+ const alias = self._renameMap[name];
363
445
  if (typeof alias === 'string' && path.node.callee.object.type === 'Identifier') {
364
446
  objectPath.replaceWith(t.identifier(alias));
365
447
  }
@@ -378,32 +460,32 @@ class EngineBuilder {
378
460
  path.replaceWith(t.callExpression(t.memberExpression(t.memberExpression(t.identifier('window'), t.identifier('__cc_module_context__')), t.identifier('import')), path.node.arguments));
379
461
  }
380
462
  },
381
- ClassDeclaration: (path) => {
463
+ ClassDeclaration(path) {
382
464
  const idPath = path.get('id');
383
465
  const name = idPath.node.name;
384
- const alias = this._renameMap[name];
466
+ const alias = self._renameMap[name];
385
467
  if (typeof alias === 'string') {
386
468
  idPath.replaceWith(t.identifier(alias));
387
469
  }
388
470
  },
389
- NewExpression: (path) => {
471
+ NewExpression(path) {
390
472
  const calleePath = path.get('callee');
391
473
  // @ts-ignore
392
474
  const name = calleePath.node.name;
393
475
  if (name) {
394
- const alias = this._renameMap[name];
476
+ const alias = self._renameMap[name];
395
477
  if (typeof alias === 'string') {
396
478
  calleePath.replaceWith(t.identifier(alias));
397
479
  }
398
480
  }
399
481
  },
400
- TSTypeAnnotation: (path) => {
482
+ TSTypeAnnotation(path) {
401
483
  // @ts-ignore
402
484
  const typeName = path.node.typeAnnotation.typeName;
403
485
  const childPath = path.get('typeAnnotation');
404
486
  if (typeName) {
405
487
  const name = typeName.name;
406
- const alias = this._renameMap[name];
488
+ const alias = self._renameMap[name];
407
489
  if (typeof alias === 'string') {
408
490
  path.replaceWith(t.tsTypeAnnotation({
409
491
  type: 'TSExpressionWithTypeArguments',
@@ -418,9 +500,9 @@ class EngineBuilder {
418
500
  }
419
501
  }
420
502
  },
421
- Identifier: (path) => {
503
+ Identifier(path) {
422
504
  const name = path.node.name;
423
- const alias = this._renameMap[name];
505
+ const alias = self._renameMap[name];
424
506
  if (typeof alias === 'string') {
425
507
  if (path.parent.type === 'ObjectProperty' || path.parent.type === 'TSPropertySignature') {
426
508
  if (path.parent.key !== path.node) {