@cocos/ccbuild 2.0.0 → 2.0.1

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/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log - @cocos/ccbuild
2
2
 
3
- This log was last generated on Thu, 13 Jul 2023 15:30:27 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 14 Jul 2023 13:11:15 GMT and should not be manually modified.
4
+
5
+ ## 2.0.1
6
+ Fri, 14 Jul 2023 13:11:15 GMT
7
+
8
+ ### Patches
9
+
10
+ - feat: support building ts engine with npm module
4
11
 
5
12
  ## 2.0.0
6
13
  Thu, 13 Jul 2023 15:30:27 GMT
@@ -22,7 +22,6 @@ export declare namespace EngineBuilder {
22
22
  interface ITransformResult {
23
23
  code: string;
24
24
  map?: any;
25
- depIdList: string[];
26
25
  }
27
26
  }
28
27
  export declare class EngineBuilder {
@@ -30,15 +29,13 @@ export declare class EngineBuilder {
30
29
  private _entries;
31
30
  private _entriesForPass2;
32
31
  private _virtual2code;
33
- private _feature2NodeModule;
34
- private _nodeModules;
35
32
  private _virtualOverrides;
36
33
  private _buildTimeConstants;
37
34
  private _moduleOverrides;
38
35
  private _buildResult;
39
36
  private _resolveExtension;
40
37
  private _renameMap;
41
- private _filedDecoratorHelper;
38
+ private _fieldDecoratorHelper;
42
39
  private _plugins;
43
40
  private _excludeTransform;
44
41
  build(options: EngineBuilder.IBuildOptions): Promise<EngineBuilder.IBuildResult>;
@@ -49,9 +46,9 @@ export declare class EngineBuilder {
49
46
  private _resolve;
50
47
  private _resolveRelative;
51
48
  private _load;
49
+ private _getDepIdList;
52
50
  private _transform;
53
51
  private _lintImport;
54
52
  private _buildIndex;
55
53
  private _copyTypes;
56
- private _addNodeModulesDeps;
57
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine-builder.d.ts","sourceRoot":"","sources":["../../src/engine-ts/engine-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,OAAO,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;AAWpD,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;IA4D1B,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,UAAU;YAqOJ,WAAW;IAyBzB,OAAO,CAAC,WAAW;YA+BL,UAAU;IAoBxB,OAAO,CAAC,mBAAmB;CAsB9B"}
1
+ {"version":3,"file":"engine-builder.d.ts","sourceRoot":"","sources":["../../src/engine-ts/engine-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,OAAO,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;AAapD,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;KACb;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,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;IAqE9F,OAAO,CAAC,YAAY;YASN,YAAY;YAoDZ,SAAS;IAyCvB,OAAO,CAAC,cAAc;YAyBR,QAAQ;IAuBtB,OAAO,CAAC,gBAAgB;YAiBV,KAAK;IAkBnB,OAAO,CAAC,aAAa;YAmCP,UAAU;YA0NV,WAAW;IAyBzB,OAAO,CAAC,WAAW;YA+BL,UAAU;CAmB3B"}
@@ -78,6 +78,7 @@ const dedent_1 = __importDefault(require("dedent"));
78
78
  const glob_1 = require("glob");
79
79
  const field_decorator_helper_1 = require("./field-decorator-helper");
80
80
  const external_wasm_loader_1 = require("./plugins/external-wasm-loader");
81
+ const node_module_loader_1 = require("./plugins/node-module-loader");
81
82
  var babel = transformer_1.babel.core;
82
83
  var t = babel.types;
83
84
  var traverse = babel.traverse;
@@ -88,14 +89,6 @@ class EngineBuilder {
88
89
  this._entries = [];
89
90
  this._entriesForPass2 = new Set();
90
91
  this._virtual2code = {};
91
- this._feature2NodeModule = {
92
- 'dragon-bones': '@cocos/dragonbones-js',
93
- 'physics-2d-box2d': '@cocos/box2d',
94
- 'physics-cannon': '@cocos/cannon',
95
- 'physics-physx': '@cocos/physx',
96
- 'physics-ammo': '@cocos/bullet'
97
- };
98
- this._nodeModules = [];
99
92
  this._virtualOverrides = {};
100
93
  this._buildResult = {};
101
94
  this._resolveExtension = ['.ts', '.js', '.json']; // not an option
@@ -106,7 +99,7 @@ class EngineBuilder {
106
99
  Path: 'PathAlias',
107
100
  struct: 'structAlias'
108
101
  };
109
- this._filedDecoratorHelper = new field_decorator_helper_1.FiledDecoratorHelper();
102
+ this._fieldDecoratorHelper = new field_decorator_helper_1.FieldDecoratorHelper();
110
103
  this._plugins = [];
111
104
  this._excludeTransform = [/external:/];
112
105
  }
@@ -116,18 +109,23 @@ class EngineBuilder {
116
109
  root
117
110
  } = options;
118
111
  this._buildResult = {};
119
- const handleIdList = idList => {
112
+ const handleIdList = idList => __awaiter(this, void 0, void 0, function* () {
120
113
  for (const id of idList) {
121
- const handleResult = this._handleId(id);
114
+ const handleResult = yield this._handleId(id);
122
115
  this._buildResult[handleResult.file] = handleResult;
123
116
  }
124
- };
117
+ });
118
+ this._initPlugins(options);
119
+ yield this._initOptions(options);
120
+ for (const plugin of this._plugins) {
121
+ if (plugin.buildStart) {
122
+ yield plugin.buildStart();
123
+ }
124
+ }
125
125
  // pass1: build ts for native engine
126
126
  console.log('[Build Engine]: pass1 - traverse and compile modules');
127
127
  console.time('pass1');
128
- this._initPlugins(options);
129
- yield this._initOptions(options);
130
- handleIdList(this._entries);
128
+ yield handleIdList(this._entries);
131
129
  console.timeEnd('pass1');
132
130
  // pass2: build web version for jsb type declarations
133
131
  console.log('[Build Engine]: pass2 - apply jsb interface info');
@@ -157,14 +155,17 @@ class EngineBuilder {
157
155
  console.timeEnd('pass3');
158
156
  this._buildIndex();
159
157
  yield this._copyTypes();
160
- // this._addNodeModulesDeps(); // TODO: support node modules building
161
158
  }
162
-
159
+ for (const plugin of this._plugins) {
160
+ if (plugin.buildEnd) {
161
+ yield plugin.buildEnd();
162
+ }
163
+ }
163
164
  return this._buildResult;
164
165
  });
165
166
  }
166
167
  _initPlugins(options) {
167
- this._plugins.push((0, external_wasm_loader_1.externalWasmLoaderFactory)({
168
+ this._plugins.push((0, node_module_loader_1.nodeModuleLoaderFactory)(), (0, external_wasm_loader_1.externalWasmLoaderFactory)({
168
169
  engineRoot: options.root
169
170
  }));
170
171
  }
@@ -183,10 +184,6 @@ class EngineBuilder {
183
184
  const features = (_a = options.features) !== null && _a !== void 0 ? _a : statsQuery.getFeatures();
184
185
  const featureUnits = statsQuery.getUnitsOfFeatures(features);
185
186
  this._entries = featureUnits.map(fu => (0, utils_1.formatPath)(statsQuery.getFeatureUnitFile(fu)));
186
- features.forEach(feature => {
187
- const nodeModule = this._feature2NodeModule[feature];
188
- nodeModule && this._nodeModules.push(nodeModule);
189
- });
190
187
  this._buildTimeConstants = constantManager.genBuildTimeConstants({
191
188
  platform,
192
189
  mode,
@@ -220,48 +217,47 @@ class EngineBuilder {
220
217
  mode,
221
218
  flags: flagConfig
222
219
  });
223
- this._virtual2code[this._filedDecoratorHelper.getModuleName()] = this._filedDecoratorHelper.genModuleSource();
224
- // TODO: resolve node modules
225
- this._virtual2code['@cocos/box2d'] = 'export {}';
226
- this._virtual2code['@cocos/bullet'] = 'export {}';
227
- this._virtual2code['@cocos/cannon'] = 'export {}';
220
+ this._virtual2code[this._fieldDecoratorHelper.getModuleName()] = this._fieldDecoratorHelper.genModuleSource();
228
221
  for (const virtualName in this._virtual2code) {
229
222
  this._virtualOverrides[virtualName] = (0, utils_1.formatPath)(ps.join(root, '__virtual__', virtualName.replace(/:/g, '_'))) + '.ts';
230
223
  }
231
224
  });
232
225
  }
233
226
  _handleId(id, importer) {
234
- const resolvedId = this._resolve(id, importer);
235
- if (typeof resolvedId === 'undefined') {
236
- throw new Error(`Cannot resolve module id: ${id} ${importer ? `in file ${importer}` : ''}`);
237
- }
238
- const code = this._load(resolvedId);
239
- if (typeof code === 'undefined') {
240
- throw new Error(`Cannot load module: ${resolvedId} ${importer ? `in file ${importer}` : ''}`);
241
- }
242
- const overrideId = this._getOverrideId(id, importer);
243
- // handle output file
244
- let file = overrideId || resolvedId;
245
- if (file.endsWith('.json')) {
246
- file = file.slice(0, -5) + '.ts';
247
- }
248
- if (this._buildResult[file]) {
249
- // skip cached file
250
- return this._buildResult[file];
251
- }
252
- const transformResult = this._transform(resolvedId, code);
253
- const handleResult = this._buildResult[file] = {
254
- code: transformResult.code,
255
- file,
256
- originalId: id,
257
- resolvedId,
258
- map: transformResult.map
259
- };
260
- transformResult.depIdList.forEach(id => {
261
- const handleResult = this._handleId(id, file);
262
- this._buildResult[handleResult.file] = handleResult;
227
+ return __awaiter(this, void 0, void 0, function* () {
228
+ const resolvedId = yield this._resolve(id, importer);
229
+ if (typeof resolvedId === 'undefined') {
230
+ throw new Error(`Cannot resolve module id: ${id} ${importer ? `in file ${importer}` : ''}`);
231
+ }
232
+ const code = yield this._load(resolvedId);
233
+ if (typeof code === 'undefined') {
234
+ throw new Error(`Cannot load module: ${resolvedId} ${importer ? `in file ${importer}` : ''}`);
235
+ }
236
+ const overrideId = this._getOverrideId(id, importer);
237
+ // handle output file
238
+ let file = overrideId || resolvedId;
239
+ if (file.endsWith('.json')) {
240
+ file = file.slice(0, -5) + '.ts';
241
+ }
242
+ if (this._buildResult[file]) {
243
+ // skip cached file
244
+ return this._buildResult[file];
245
+ }
246
+ const depIdList = this._getDepIdList(file, code);
247
+ // we handle the dep module first, because we need to get the resolved dep id to transform the import specifier in current module.
248
+ for (const depId of depIdList) {
249
+ yield this._handleId(depId, file);
250
+ }
251
+ const transformResult = yield this._transform(resolvedId, code);
252
+ const handleResult = this._buildResult[file] = {
253
+ code: transformResult.code,
254
+ file,
255
+ originalId: id,
256
+ resolvedId,
257
+ map: transformResult.map
258
+ };
259
+ return handleResult;
263
260
  });
264
- return handleResult;
265
261
  }
266
262
  _getOverrideId(id, importer) {
267
263
  var _a;
@@ -290,28 +286,28 @@ class EngineBuilder {
290
286
  }
291
287
  _resolve(id, importer) {
292
288
  var _a, _b;
293
- for (const p of this._plugins) {
294
- const resolvedId = (_a = p.resolve) === null || _a === void 0 ? void 0 : _a.call(p, id, importer);
295
- if (resolvedId) {
296
- return resolvedId;
289
+ return __awaiter(this, void 0, void 0, function* () {
290
+ for (const p of this._plugins) {
291
+ const resolvedId = yield (_a = p.resolve) === null || _a === void 0 ? void 0 : _a.call(p, id, importer);
292
+ if (resolvedId) {
293
+ return resolvedId;
294
+ }
297
295
  }
298
- }
299
- if (!importer) {
300
- return id; // entry
301
- } else if (id in this._virtualOverrides) {
302
- return id; // virtual module does not have real fs path
303
- } else if (id in this._moduleOverrides) {
304
- return this._moduleOverrides[id];
305
- } else if (this._nodeModules.includes(id)) {
306
- return id; // node module only use bare specifier as module id
307
- } else if (ps.isAbsolute(id)) {
308
- return id;
309
- } else {
310
- const resolved = this._resolveRelative(id, importer);
311
- if (resolved) {
312
- return (_b = this._moduleOverrides[resolved]) !== null && _b !== void 0 ? _b : resolved;
296
+ if (!importer) {
297
+ return id; // entry
298
+ } else if (id in this._virtualOverrides) {
299
+ return id; // virtual module does not have real fs path
300
+ } else if (id in this._moduleOverrides) {
301
+ return this._moduleOverrides[id];
302
+ } else if (ps.isAbsolute(id)) {
303
+ return id;
304
+ } else {
305
+ const resolved = this._resolveRelative(id, importer);
306
+ if (resolved) {
307
+ return (_b = this._moduleOverrides[resolved]) !== null && _b !== void 0 ? _b : resolved;
308
+ }
313
309
  }
314
- }
310
+ });
315
311
  }
316
312
  _resolveRelative(id, importer) {
317
313
  const file = (0, utils_1.formatPath)(ps.join(ps.dirname(importer), id));
@@ -331,33 +327,27 @@ class EngineBuilder {
331
327
  }
332
328
  _load(id) {
333
329
  var _a;
334
- for (const p of this._plugins) {
335
- const loadedCode = (_a = p.load) === null || _a === void 0 ? void 0 : _a.call(p, id);
336
- if (loadedCode) {
337
- return loadedCode;
330
+ return __awaiter(this, void 0, void 0, function* () {
331
+ for (const p of this._plugins) {
332
+ const loadedCode = yield (_a = p.load) === null || _a === void 0 ? void 0 : _a.call(p, id);
333
+ if (loadedCode) {
334
+ return loadedCode;
335
+ }
338
336
  }
339
- }
340
- if (fs.existsSync(id)) {
341
- let code = fs.readFileSync(id, 'utf8');
342
- if (id.endsWith('.json')) {
343
- code = `export default ${code};`;
337
+ if (fs.existsSync(id)) {
338
+ let code = fs.readFileSync(id, 'utf8');
339
+ if (id.endsWith('.json')) {
340
+ code = `export default ${code};`;
341
+ }
342
+ return code;
343
+ } else if (this._virtualOverrides[id]) {
344
+ return this._virtual2code[id];
344
345
  }
345
- return code;
346
- } else if (this._virtualOverrides[id]) {
347
- return this._virtual2code[id];
348
- }
346
+ });
349
347
  }
350
- _transform(file, code) {
351
- file = (0, utils_1.formatPath)(file);
352
- for (const ex of this._excludeTransform) {
353
- if (ex.test(file)) {
354
- return {
355
- code,
356
- depIdList: []
357
- };
358
- }
359
- }
348
+ _getDepIdList(file, code) {
360
349
  const depIdList = [];
350
+ // eg. zlib.js dependent on zlib.d.ts
361
351
  if (ps.extname(file) === '.js') {
362
352
  const dtsFile = (0, utils_1.toExtensionLess)(file) + '.d.ts';
363
353
  if (fs.existsSync(dtsFile)) {
@@ -371,171 +361,203 @@ class EngineBuilder {
371
361
  if (source) {
372
362
  const specifier = source.value;
373
363
  // add dependency
374
- if (!this._nodeModules.includes(specifier)) {
375
- // don't load node modules, we post install the modules in OH project
376
- depIdList.push(specifier);
377
- }
378
- // transform import/export declaration if needed
379
- const overrideId = this._getOverrideId(specifier, file);
380
- if (overrideId) {
381
- let relativePath = (0, utils_1.formatPath)(ps.relative(ps.dirname(file), overrideId));
382
- if (!relativePath.startsWith('.')) {
383
- relativePath = './' + relativePath;
384
- }
385
- if (ps.extname(relativePath) === '.ts') {
386
- relativePath = relativePath.slice(0, -3); // remove '.ts'
387
- }
388
- // traverse to transform specifier
389
- traverse(path.node, {
390
- StringLiteral(path) {
391
- path.replaceWith(babel.types.stringLiteral(relativePath));
392
- path.skip();
393
- }
394
- }, path.scope);
395
- }
364
+ depIdList.push(specifier);
396
365
  }
397
- const importExportSpecifier = path => {
398
- const name = path.node.local.name;
399
- const alias = this._renameMap[name];
400
- if (alias) {
401
- path.replaceWith(babel.types.exportSpecifier(babel.types.identifier(alias), babel.types.identifier(alias)));
402
- }
403
- };
404
- path.traverse({
405
- ExportSpecifier: importExportSpecifier,
406
- ImportSpecifier: importExportSpecifier
407
- });
408
366
  };
409
- // eslint-disable-next-line @typescript-eslint/no-this-alias
410
- const self = this;
411
- const transformResult = babel.transformSync(code, {
367
+ const res = babel.parseSync(code, {
412
368
  configFile: false,
413
369
  plugins: [[pluginSyntaxTS], [syntaxDecorators, {
414
370
  version: '2018-09',
415
371
  decoratorsBeforeExport: true
416
- }], [() => {
417
- return {
418
- name: 'custom-transform',
419
- pre(file) {
420
- // eslint-disable-next-line @typescript-eslint/no-this-alias
421
- const pluginPass = this;
422
- traverse(file.ast, {
423
- ClassProperty(path) {
424
- const decoratorsPath = path.get('decorators');
425
- if (Array.isArray(decoratorsPath)) {
426
- const propertyValuePath = path.get('value');
427
- const helperIdentifier = self._filedDecoratorHelper.addHelper(pluginPass.file);
428
- decoratorsPath.forEach(decPath => {
429
- const expPath = decPath.get('expression');
430
- const type = expPath.node.type;
431
- if (type === 'CallExpression') {
432
- const decName = expPath.node.callee.name;
433
- const args = expPath.node.arguments;
434
- decPath.replaceWith(t.decorator(t.callExpression(helperIdentifier, [t.identifier(decName), propertyValuePath.node ? t.arrowFunctionExpression([], propertyValuePath.node) : t.nullLiteral(), ...args])));
435
- } else if (type === 'Identifier') {
436
- const decName = expPath.node.name;
437
- decPath.replaceWith(t.decorator(t.callExpression(helperIdentifier, [t.identifier(decName), propertyValuePath.node ? t.arrowFunctionExpression([], propertyValuePath.node) : t.nullLiteral()])));
438
- }
439
- });
440
- }
372
+ }]]
373
+ });
374
+ babel.traverse(res, {
375
+ ImportDeclaration: importExportVisitor,
376
+ ExportDeclaration: importExportVisitor
377
+ });
378
+ return depIdList;
379
+ }
380
+ _transform(file, code) {
381
+ return __awaiter(this, void 0, void 0, function* () {
382
+ file = (0, utils_1.formatPath)(file);
383
+ for (const ex of this._excludeTransform) {
384
+ if (ex.test(file)) {
385
+ return {
386
+ code
387
+ };
388
+ }
389
+ }
390
+ let needFieldHelperModule = false;
391
+ const importExportVisitor = path => {
392
+ // @ts-expect-error TODO: fix type
393
+ const source = path.node.source;
394
+ if (source) {
395
+ const specifier = source.value;
396
+ // transform import/export declaration if needed
397
+ const overrideId = this._getOverrideId(specifier, file);
398
+ if (overrideId) {
399
+ let relativePath = (0, utils_1.formatPath)(ps.relative(ps.dirname(file), overrideId));
400
+ if (!relativePath.startsWith('.')) {
401
+ relativePath = './' + relativePath;
402
+ }
403
+ if (ps.extname(relativePath) === '.ts') {
404
+ relativePath = relativePath.slice(0, -3); // remove '.ts'
405
+ }
406
+
407
+ traverse(path.node, {
408
+ StringLiteral(path) {
409
+ path.replaceWith(babel.types.stringLiteral(relativePath));
410
+ path.skip();
441
411
  }
442
- });
443
- },
444
- visitor: {
445
- ImportDeclaration: importExportVisitor,
446
- ExportDeclaration: importExportVisitor,
447
- // TODO: here we rename class Rect and Path
448
- CallExpression(path) {
449
- if (path.node.callee.type === 'MemberExpression') {
450
- const memberExpressionPath = path.get('callee');
451
- const objectPath = memberExpressionPath.get('object');
452
- const name = objectPath.node.name;
453
- const alias = self._renameMap[name];
454
- if (typeof alias === 'string' && path.node.callee.object.type === 'Identifier') {
455
- objectPath.replaceWith(t.identifier(alias));
456
- }
457
- // TODO: for now, OH doesn't support standard console interface,
458
- // so we need to ignore the type checking for console call expressions.
459
- else if (name === 'console') {
460
- path.node.leadingComments = [{
461
- type: 'CommentLine',
462
- value: ' @ts-ignore'
463
- }];
412
+ }, path.scope);
413
+ }
414
+ }
415
+ const importExportSpecifier = path => {
416
+ const name = path.node.local.name;
417
+ const alias = this._renameMap[name];
418
+ if (alias) {
419
+ path.replaceWith(babel.types.exportSpecifier(babel.types.identifier(alias), babel.types.identifier(alias)));
420
+ }
421
+ };
422
+ path.traverse({
423
+ ExportSpecifier: importExportSpecifier,
424
+ ImportSpecifier: importExportSpecifier
425
+ });
426
+ };
427
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
428
+ const self = this;
429
+ const transformResult = babel.transformSync(code, {
430
+ configFile: false,
431
+ plugins: [[pluginSyntaxTS], [syntaxDecorators, {
432
+ version: '2018-09',
433
+ decoratorsBeforeExport: true
434
+ }], [() => {
435
+ return {
436
+ name: 'custom-transform',
437
+ pre(file) {
438
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
439
+ const pluginPass = this;
440
+ traverse(file.ast, {
441
+ ClassProperty(path) {
442
+ const decoratorsPath = path.get('decorators');
443
+ if (Array.isArray(decoratorsPath)) {
444
+ const propertyValuePath = path.get('value');
445
+ const helperIdentifier = self._fieldDecoratorHelper.addHelper(pluginPass.file);
446
+ needFieldHelperModule = true;
447
+ decoratorsPath.forEach(decPath => {
448
+ const expPath = decPath.get('expression');
449
+ const type = expPath.node.type;
450
+ if (type === 'CallExpression') {
451
+ const decName = expPath.node.callee.name;
452
+ const args = expPath.node.arguments;
453
+ decPath.replaceWith(t.decorator(t.callExpression(helperIdentifier, [t.identifier(decName), propertyValuePath.node ? t.arrowFunctionExpression([], propertyValuePath.node) : t.nullLiteral(), ...args])));
454
+ } else if (type === 'Identifier') {
455
+ const decName = expPath.node.name;
456
+ decPath.replaceWith(t.decorator(t.callExpression(helperIdentifier, [t.identifier(decName), propertyValuePath.node ? t.arrowFunctionExpression([], propertyValuePath.node) : t.nullLiteral()])));
457
+ }
458
+ });
459
+ }
464
460
  }
465
- } else if (path.node.callee.type === 'Import') {
466
- // TODO: for now, we transform `import('./xxx/xxx.js')` into `window.__cc_module_context__.import('./xxx/xxx.js')`
467
- // we need to support import(`project://xxx`) in the future.
468
- path.replaceWith(t.callExpression(t.memberExpression(t.memberExpression(t.identifier('window'), t.identifier('__cc_module_context__')), t.identifier('import')), path.node.arguments));
469
- }
470
- },
471
- ClassDeclaration(path) {
472
- const idPath = path.get('id');
473
- const name = idPath.node.name;
474
- const alias = self._renameMap[name];
475
- if (typeof alias === 'string') {
476
- idPath.replaceWith(t.identifier(alias));
477
- }
461
+ });
478
462
  },
479
- NewExpression(path) {
480
- const calleePath = path.get('callee');
481
- // @ts-expect-error TODO: fix type
482
- const name = calleePath.node.name;
483
- if (name) {
484
- const alias = self._renameMap[name];
485
- if (typeof alias === 'string') {
486
- calleePath.replaceWith(t.identifier(alias));
463
+ visitor: {
464
+ ImportDeclaration: importExportVisitor,
465
+ ExportDeclaration: importExportVisitor,
466
+ // TODO: here we rename class Rect and Path
467
+ CallExpression(path) {
468
+ if (path.node.callee.type === 'MemberExpression') {
469
+ const memberExpressionPath = path.get('callee');
470
+ const objectPath = memberExpressionPath.get('object');
471
+ const name = objectPath.node.name;
472
+ const alias = self._renameMap[name];
473
+ if (typeof alias === 'string' && path.node.callee.object.type === 'Identifier') {
474
+ objectPath.replaceWith(t.identifier(alias));
475
+ }
476
+ // TODO: for now, OH doesn't support standard console interface,
477
+ // so we need to ignore the type checking for console call expressions.
478
+ else if (name === 'console') {
479
+ path.node.leadingComments = [{
480
+ type: 'CommentLine',
481
+ value: ' @ts-ignore'
482
+ }];
483
+ }
484
+ } else if (path.node.callee.type === 'Import') {
485
+ // TODO: for now, we transform `import('./xxx/xxx.js')` into `window.__cc_module_context__.import('./xxx/xxx.js')`
486
+ // we need to support import(`project://xxx`) in the future.
487
+ path.replaceWith(t.callExpression(t.memberExpression(t.memberExpression(t.identifier('window'), t.identifier('__cc_module_context__')), t.identifier('import')), path.node.arguments));
487
488
  }
488
- }
489
- },
490
- TSTypeAnnotation(path) {
491
- // @ts-expect-error TODO: fix type
492
- const typeName = path.node.typeAnnotation.typeName;
493
- const childPath = path.get('typeAnnotation');
494
- if (typeName) {
495
- const name = typeName.name;
489
+ },
490
+ ClassDeclaration(path) {
491
+ const idPath = path.get('id');
492
+ const name = idPath.node.name;
496
493
  const alias = self._renameMap[name];
497
494
  if (typeof alias === 'string') {
498
- path.replaceWith(t.tsTypeAnnotation({
499
- type: 'TSExpressionWithTypeArguments',
500
- expression: t.identifier(alias)
501
- }));
495
+ idPath.replaceWith(t.identifier(alias));
502
496
  }
503
- } else if (childPath.type === 'TSLiteralType') {
504
- const literalPath = childPath.get('literal');
505
- if (literalPath.type === 'TemplateLiteral') {
506
- path.replaceWith(t.tsTypeAnnotation(t.tsStringKeyword()));
497
+ },
498
+ NewExpression(path) {
499
+ const calleePath = path.get('callee');
500
+ // @ts-expect-error TODO: fix type
501
+ const name = calleePath.node.name;
502
+ if (name) {
503
+ const alias = self._renameMap[name];
504
+ if (typeof alias === 'string') {
505
+ calleePath.replaceWith(t.identifier(alias));
506
+ }
507
507
  }
508
- }
509
- },
510
- Identifier(path) {
511
- const name = path.node.name;
512
- const alias = self._renameMap[name];
513
- if (typeof alias === 'string') {
514
- if (path.parent.type === 'ObjectProperty' || path.parent.type === 'TSPropertySignature') {
515
- if (path.parent.key !== path.node) {
516
- path.replaceWith(t.identifier(alias));
508
+ },
509
+ TSTypeAnnotation(path) {
510
+ // @ts-expect-error TODO: fix type
511
+ const typeName = path.node.typeAnnotation.typeName;
512
+ const childPath = path.get('typeAnnotation');
513
+ if (typeName) {
514
+ const name = typeName.name;
515
+ const alias = self._renameMap[name];
516
+ if (typeof alias === 'string') {
517
+ path.replaceWith(t.tsTypeAnnotation({
518
+ type: 'TSExpressionWithTypeArguments',
519
+ expression: t.identifier(alias)
520
+ }));
517
521
  }
518
- } else if (path.parent.type === 'MemberExpression' || path.parent.type === 'OptionalMemberExpression') {
519
- if (path.parent.property !== path.node) {
520
- path.replaceWith(t.identifier(alias));
522
+ } else if (childPath.type === 'TSLiteralType') {
523
+ const literalPath = childPath.get('literal');
524
+ if (literalPath.type === 'TemplateLiteral') {
525
+ path.replaceWith(t.tsTypeAnnotation(t.tsStringKeyword()));
521
526
  }
522
- } else if (!(path.parent.type === 'ClassMethod' && (path.parent.kind === 'get' || path.parent.kind === 'set' || path.parent.key === path.node)) && path.parent.type !== 'ClassProperty') {
523
- const newIdentifier = t.identifier(alias);
524
- if (path.node.typeAnnotation) {
525
- newIdentifier.typeAnnotation = path.node.typeAnnotation;
527
+ }
528
+ },
529
+ Identifier(path) {
530
+ const name = path.node.name;
531
+ const alias = self._renameMap[name];
532
+ if (typeof alias === 'string') {
533
+ if (path.parent.type === 'ObjectProperty' || path.parent.type === 'TSPropertySignature') {
534
+ if (path.parent.key !== path.node) {
535
+ path.replaceWith(t.identifier(alias));
536
+ }
537
+ } else if (path.parent.type === 'MemberExpression' || path.parent.type === 'OptionalMemberExpression') {
538
+ if (path.parent.property !== path.node) {
539
+ path.replaceWith(t.identifier(alias));
540
+ }
541
+ } else if (!(path.parent.type === 'ClassMethod' && (path.parent.kind === 'get' || path.parent.kind === 'set' || path.parent.key === path.node)) && path.parent.type !== 'ClassProperty') {
542
+ const newIdentifier = t.identifier(alias);
543
+ if (path.node.typeAnnotation) {
544
+ newIdentifier.typeAnnotation = path.node.typeAnnotation;
545
+ }
546
+ path.replaceWith(newIdentifier);
526
547
  }
527
- path.replaceWith(newIdentifier);
528
548
  }
529
549
  }
530
550
  }
531
- }
532
- };
533
- }]]
551
+ };
552
+ }]]
553
+ });
554
+ if (needFieldHelperModule) {
555
+ yield this._handleId(this._fieldDecoratorHelper.getModuleName(), file);
556
+ }
557
+ return {
558
+ code: transformResult === null || transformResult === void 0 ? void 0 : transformResult.code
559
+ };
534
560
  });
535
- return {
536
- code: transformResult === null || transformResult === void 0 ? void 0 : transformResult.code,
537
- depIdList
538
- };
539
561
  }
540
562
  _lintImport(lintFiles, verbose = false) {
541
563
  return __awaiter(this, void 0, void 0, function* () {
@@ -618,33 +640,5 @@ class EngineBuilder {
618
640
  fs.outputFileSync(targetDomDts, code, 'utf8');
619
641
  });
620
642
  }
621
- _addNodeModulesDeps() {
622
- const {
623
- outDir
624
- } = this._options;
625
- if (!outDir) {
626
- return;
627
- }
628
- const pkgFile = (0, utils_1.formatPath)(ps.join(outDir, '..',
629
- // src
630
- '..',
631
- // cocos
632
- '..',
633
- // ets
634
- '..',
635
- // main
636
- '..',
637
- // src
638
- '..',
639
- // entry
640
- 'package.json'));
641
- if (!fs.existsSync(pkgFile)) {
642
- return;
643
- }
644
- const jsonObj = fs.readJSONSync(pkgFile);
645
- console.log(jsonObj);
646
- // TODO
647
- }
648
643
  }
649
-
650
644
  exports.EngineBuilder = EngineBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"engine-builder.js","sourceRoot":"","sources":["../../src/engine-ts/engine-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine-builder.js","sourceRoot":"","sources":["../../src/engine-ts/engine-builder.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { babel as Transformer } from "../../../transformer/lib/index";
2
2
  import BabelFile = Transformer.core.BabelFile;
3
3
  import t = Transformer.core.types;
4
- export declare class FiledDecoratorHelper {
4
+ export declare class FieldDecoratorHelper {
5
5
  private _moduleName;
6
6
  private _moduleSource?;
7
7
  private _file2NamedIdentifier;
@@ -34,11 +34,11 @@ var __importStar = this && this.__importStar || function (mod) {
34
34
  Object.defineProperty(exports, "__esModule", {
35
35
  value: true
36
36
  });
37
- exports.FiledDecoratorHelper = void 0;
37
+ exports.FieldDecoratorHelper = void 0;
38
38
  const fs = __importStar(require("fs-extra"));
39
39
  const ps = __importStar(require("path"));
40
40
  const helper_module_imports_1 = require("@babel/helper-module-imports");
41
- class FiledDecoratorHelper {
41
+ class FieldDecoratorHelper {
42
42
  constructor() {
43
43
  this._moduleName = 'CCBUILD_HELPER_MODULE';
44
44
  this._file2NamedIdentifier = new WeakMap();
@@ -62,4 +62,4 @@ class FiledDecoratorHelper {
62
62
  return namedIdentifier;
63
63
  }
64
64
  }
65
- exports.FiledDecoratorHelper = FiledDecoratorHelper;
65
+ exports.FieldDecoratorHelper = FieldDecoratorHelper;
@@ -31,6 +31,33 @@ var __importStar = this && this.__importStar || function (mod) {
31
31
  __setModuleDefault(result, mod);
32
32
  return result;
33
33
  };
34
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
35
+ function adopt(value) {
36
+ return value instanceof P ? value : new P(function (resolve) {
37
+ resolve(value);
38
+ });
39
+ }
40
+ return new (P || (P = Promise))(function (resolve, reject) {
41
+ function fulfilled(value) {
42
+ try {
43
+ step(generator.next(value));
44
+ } catch (e) {
45
+ reject(e);
46
+ }
47
+ }
48
+ function rejected(value) {
49
+ try {
50
+ step(generator["throw"](value));
51
+ } catch (e) {
52
+ reject(e);
53
+ }
54
+ }
55
+ function step(result) {
56
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
57
+ }
58
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
59
+ });
60
+ };
34
61
  Object.defineProperty(exports, "__esModule", {
35
62
  value: true
36
63
  });
@@ -40,30 +67,34 @@ const ps = __importStar(require("path"));
40
67
  const externalOrigin = 'external:';
41
68
  function externalWasmLoaderFactory(options) {
42
69
  const externalWasmLoader = {
43
- resolve(id, importer) {
44
- if (id.startsWith(externalOrigin)) {
45
- return id;
46
- }
47
- return undefined;
70
+ resolve(source, importer) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ if (source.startsWith(externalOrigin)) {
73
+ return source;
74
+ }
75
+ return undefined;
76
+ });
48
77
  },
49
78
  load(id) {
50
- if (id.startsWith(externalOrigin)) {
51
- if (id.endsWith('.wasm')) {
52
- return `export default 'WebAssembly is not supported !'`;
53
- } else {
54
- const filePath = ps.join(options.engineRoot, id.replace(externalOrigin, 'native/external/'));
55
- return fs.readFileSync(filePath, 'utf8');
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ if (id.startsWith(externalOrigin)) {
81
+ if (id.endsWith('.wasm')) {
82
+ return `export default 'WebAssembly is not supported !'`;
83
+ } else {
84
+ const filePath = ps.join(options.engineRoot, id.replace(externalOrigin, 'native/external/'));
85
+ return fs.readFileSync(filePath, 'utf8');
86
+ }
56
87
  }
57
- }
58
- return undefined;
88
+ return undefined;
89
+ });
59
90
  },
60
- transformId(id, importer) {
61
- if (id.startsWith(externalOrigin)) {
62
- if (id.endsWith('.wasm')) {
91
+ transformId(source, importer) {
92
+ if (source.startsWith(externalOrigin)) {
93
+ if (source.endsWith('.wasm')) {
63
94
  // we generate a ts file to throw an message that we don't support wasm for now
64
- return ps.join(options.engineRoot, id.replace(externalOrigin, 'native/external/') + '.ts');
95
+ return ps.join(options.engineRoot, source.replace(externalOrigin, 'native/external/') + '.ts');
65
96
  } else {
66
- return ps.join(options.engineRoot, id.replace(externalOrigin, 'native/external/'));
97
+ return ps.join(options.engineRoot, source.replace(externalOrigin, 'native/external/'));
67
98
  }
68
99
  }
69
100
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"external-wasm-loader.js","sourceRoot":"","sources":["../../../src/engine-ts/plugins/external-wasm-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,yCAA2B;AAG3B,MAAM,cAAc,GAAG,WAAW,CAAC;AAEnC,SAAgB,yBAAyB,CAAE,OAA0C;IAEjF,MAAM,kBAAkB,GAAoB;QACxC,OAAO,CAAE,EAAU,EAAE,QAAiB;YAClC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAC/B,OAAO,EAAE,CAAC;aACb;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAE,EAAU;YACZ,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACtB,OAAO,iDAAiD,CAAC;iBAC5D;qBAAM;oBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;oBAC7F,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAC5C;aACJ;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,WAAW,CAAE,EAAU,EAAE,QAAiB;YACtC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACtB,+EAA+E;oBAC/E,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC;iBAC9F;qBAAM;oBACH,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;iBACtF;aACJ;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AApCD,8DAoCC"}
1
+ {"version":3,"file":"external-wasm-loader.js","sourceRoot":"","sources":["../../../src/engine-ts/plugins/external-wasm-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,yCAA2B;AAG3B,MAAM,cAAc,GAAG,WAAW,CAAC;AAEnC,SAAgB,yBAAyB,CAAE,OAA0C;IAEjF,MAAM,kBAAkB,GAAoB;QAClC,OAAO,CAAE,MAAc,EAAE,QAAiB;;gBAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBACnC,OAAO,MAAM,CAAC;iBACjB;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC;SAAA;QAEK,IAAI,CAAE,EAAU;;gBAClB,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;wBACtB,OAAO,iDAAiD,CAAC;qBAC5D;yBAAM;wBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;wBAC7F,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC5C;iBACJ;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC;SAAA;QAED,WAAW,CAAE,MAAc,EAAE,QAAiB;YAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAC1B,+EAA+E;oBAC/E,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC;iBAClG;qBAAM;oBACH,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;iBAC1F;aACJ;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AApCD,8DAoCC"}
@@ -1,20 +1,22 @@
1
1
  export interface ITsEnginePlugin {
2
+ buildStart?(): Promise<void>;
2
3
  /**
3
4
  * The hook to resolve id, return `null` if this plugin cannot handle this script.
4
- * @param id
5
+ * @param source
5
6
  * @param importer
6
7
  */
7
- resolve?(id: string, importer?: string): string | void;
8
+ resolve?(source: string, importer?: string): Promise<string | void>;
8
9
  /**
9
10
  * The hook to load script, return `null` if this plugin cannot handle this script.
10
11
  * @param id
11
12
  */
12
- load?(id: string): string | void;
13
+ load?(id: string): Promise<string | void>;
13
14
  /**
14
15
  * The hook to transform id, return the absolute file path or null.
15
16
  * This is useful when we transform a virtual module id to an absolute file path.
16
17
  * eg. transform `internal:constants` to `filePath/__virtual__/internal_constants.ts`
17
- * @param id
18
+ * @param source
18
19
  */
19
- transformId?(id: string, importer?: string): string | void;
20
+ transformId?(source: string, importer?: string): string | void;
21
+ buildEnd?(): Promise<void>;
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/engine-ts/plugins/interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B;;;;OAIG;IACH,OAAO,CAAC,CAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxD;;;OAGG;IACH,IAAI,CAAC,CAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAElC;;;;;OAKG;IACH,WAAW,CAAC,CAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/D"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/engine-ts/plugins/interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,UAAU,CAAC,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B;;;;OAIG;IACH,OAAO,CAAC,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrE;;;OAGG;IACH,IAAI,CAAC,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,WAAW,CAAC,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChE,QAAQ,CAAC,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ import { ITsEnginePlugin } from './interface';
2
+ export declare function nodeModuleLoaderFactory(): ITsEnginePlugin;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-module-loader.d.ts","sourceRoot":"","sources":["../../../src/engine-ts/plugins/node-module-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAsB9C,wBAAgB,uBAAuB,IAAK,eAAe,CAuD1D"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P ? value : new P(function (resolve) {
6
+ resolve(value);
7
+ });
8
+ }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) {
11
+ try {
12
+ step(generator.next(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ }
17
+ function rejected(value) {
18
+ try {
19
+ step(generator["throw"](value));
20
+ } catch (e) {
21
+ reject(e);
22
+ }
23
+ }
24
+ function step(result) {
25
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
26
+ }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ Object.defineProperty(exports, "__esModule", {
31
+ value: true
32
+ });
33
+ exports.nodeModuleLoaderFactory = void 0;
34
+ const bundler_1 = require("../../../../bundler/lib/index.js");
35
+ var rollup = bundler_1.rollup.core;
36
+ var rpCjs = bundler_1.rollup.plugins.commonjs;
37
+ var rpNodeResolve = bundler_1.rollup.plugins.nodeResolve;
38
+ function nodeModuleLoaderFactory() {
39
+ const resolvedModuleMap = {};
40
+ const nodeModuleLoader = {
41
+ resolve(source, importer) {
42
+ var _a, _b;
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ if (source.startsWith('@cocos/') && importer) {
45
+ if ((_a = resolvedModuleMap[source]) === null || _a === void 0 ? void 0 : _a.id) {
46
+ return resolvedModuleMap[source].id;
47
+ }
48
+ const resolvedPath = require.resolve(source, {
49
+ paths: [importer]
50
+ });
51
+ (_b = resolvedModuleMap[source]) !== null && _b !== void 0 ? _b : resolvedModuleMap[source] = {
52
+ id: resolvedPath
53
+ };
54
+ return resolvedPath;
55
+ }
56
+ });
57
+ },
58
+ load(id) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ for (const [source, resolvedModuleData] of Object.entries(resolvedModuleMap)) {
61
+ if (resolvedModuleData.id === id) {
62
+ if (resolvedModuleData.id) {
63
+ if (resolvedModuleData.code) {
64
+ return resolvedModuleData.code;
65
+ }
66
+ // bundle the node module
67
+ const res = yield rollup.rollup({
68
+ input: resolvedModuleData.id,
69
+ plugins: [rpNodeResolve(), rpCjs()]
70
+ });
71
+ const generateRes = yield res.generate({
72
+ format: 'es'
73
+ });
74
+ return resolvedModuleData.code = generateRes.output[0].code;
75
+ }
76
+ }
77
+ }
78
+ });
79
+ },
80
+ transformId(source, importer) {
81
+ if (source in resolvedModuleMap) {
82
+ const resolvedModuleData = resolvedModuleMap[source];
83
+ if (resolvedModuleData.id) {
84
+ return resolvedModuleData.id;
85
+ }
86
+ }
87
+ }
88
+ };
89
+ return nodeModuleLoader;
90
+ }
91
+ exports.nodeModuleLoaderFactory = nodeModuleLoaderFactory;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-module-loader.js","sourceRoot":"","sources":["../../../src/engine-ts/plugins/node-module-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAqD;AAGrD,IAAO,MAAM,GAAG,gBAAO,CAAC,IAAI,CAAC;AAC7B,IAAO,KAAK,GAAG,gBAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxC,IAAO,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,WAAW,CAAC;AAkBnD,SAAgB,uBAAuB;IACnC,MAAM,iBAAiB,GAAsB,EAAE,CAAC;IAChD,MAAM,gBAAgB,GAAoB;QAChC,OAAO,CAAE,MAAc,EAAE,QAAiB;;;gBAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,EAAE;oBAC1C,IAAI,MAAA,iBAAiB,CAAC,MAAM,CAAC,0CAAE,EAAE,EAAE;wBAC/B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;qBACvC;oBACD,MAAM,YAAY,GAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;wBAC1C,KAAK,EAAE;4BACH,QAAQ;yBACX;qBACJ,CAAC,CAAC;oBACH,MAAA,iBAAiB,CAAC,MAAM,qCAAxB,iBAAiB,CAAC,MAAM,IAAM;wBAC1B,EAAE,EAAE,YAAY;qBACnB,EAAC;oBACF,OAAO,YAAY,CAAC;iBACvB;;SACJ;QAEK,IAAI,CAAE,EAAU;;gBAClB,KAAK,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;oBAC1E,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE;wBAC9B,IAAI,kBAAkB,CAAC,EAAE,EAAE;4BACvB,IAAI,kBAAkB,CAAC,IAAI,EAAE;gCACzB,OAAO,kBAAkB,CAAC,IAAI,CAAC;6BAClC;4BACD,yBAAyB;4BACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gCAC5B,KAAK,EAAE,kBAAkB,CAAC,EAAE;gCAC5B,OAAO,EAAE;oCACL,aAAa,EAAE;oCACf,KAAK,EAAE;iCACV;6BACJ,CAAC,CAAC;4BACH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;gCACnC,MAAM,EAAE,IAAI;6BACf,CAAC,CAAC;4BACH,OAAO,kBAAkB,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;yBAC/D;qBACJ;iBACJ;YACL,CAAC;SAAA;QAED,WAAW,CAAE,MAAc,EAAE,QAAiB;YAC1C,IAAI,MAAM,IAAI,iBAAiB,EAAE;gBAC7B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,kBAAkB,CAAC,EAAE,EAAE;oBACvB,OAAO,kBAAkB,CAAC,EAAE,CAAC;iBAChC;aACJ;QACL,CAAC;KACJ,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAvDD,0DAuDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocos/ccbuild",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "The next generation of build tool for Cocos engine.",
5
5
  "main": "./lib/src/index.js",
6
6
  "types": "./lib/src/index.d.ts",