@cocos/ccbuild 2.0.3-alpha.11 → 2.0.3-alpha.12

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 (39) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +16 -16
  3. package/modules/build-engine/lib/engine-js/index.d.ts.map +1 -1
  4. package/modules/build-engine/lib/engine-js/index.js +1 -0
  5. package/modules/build-engine/lib/engine-js/index.js.map +1 -1
  6. package/modules/build-engine/lib/engine-js/rollup-plugins/external-wasm-loader.d.ts +37 -33
  7. package/modules/build-engine/lib/engine-js/rollup-plugins/external-wasm-loader.d.ts.map +1 -1
  8. package/modules/build-engine/lib/engine-js/rollup-plugins/external-wasm-loader.js +17 -14
  9. package/modules/build-engine/lib/engine-js/rollup-plugins/external-wasm-loader.js.map +1 -1
  10. package/modules/build-engine/lib/engine-ts/engine-builder.d.ts.map +1 -1
  11. package/modules/build-engine/lib/engine-ts/engine-builder.js +3 -1
  12. package/modules/build-engine/lib/engine-ts/engine-builder.js.map +1 -1
  13. package/modules/build-engine/lib/engine-ts/plugins/external-wasm-loader.d.ts +4 -0
  14. package/modules/build-engine/lib/engine-ts/plugins/external-wasm-loader.d.ts.map +1 -1
  15. package/modules/build-engine/lib/engine-ts/plugins/external-wasm-loader.js +6 -3
  16. package/modules/build-engine/lib/engine-ts/plugins/external-wasm-loader.js.map +1 -1
  17. package/modules/build-engine/lib/engine-ts/plugins/interface.d.ts +14 -14
  18. package/modules/build-engine/lib/index.d.ts +94 -94
  19. package/modules/build-engine/lib/index.js +16 -16
  20. package/modules/dts-bundler/lib/index.js +5 -5
  21. package/modules/modularize/lib/module-config.d.ts +70 -70
  22. package/modules/modularize/lib/module-query.d.ts +25 -25
  23. package/modules/modularize/lib/module-query.js +13 -13
  24. package/modules/modularize/lib/platform-config.d.ts +8 -8
  25. package/modules/modularize/lib/platform-config.js +8 -8
  26. package/modules/stats-query/lib/config-interface.d.ts +61 -61
  27. package/modules/stats-query/lib/index.d.ts +63 -57
  28. package/modules/stats-query/lib/index.d.ts.map +1 -1
  29. package/modules/stats-query/lib/index.js +41 -41
  30. package/modules/stats-query/lib/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/static/helper-dynamic-constants.txt +13 -13
  33. package/static/helper-file-decorator.ts +20 -20
  34. package/static/helper-global-exporter.txt +8 -8
  35. package/static/lib.dom.d.ts +2330 -2330
  36. package/modules/build-engine/lib/build-dts.d.ts +0 -7
  37. package/modules/build-engine/lib/build-dts.d.ts.map +0 -1
  38. package/modules/build-engine/lib/build-dts.js +0 -297
  39. package/modules/build-engine/lib/build-dts.js.map +0 -1
@@ -1,7 +0,0 @@
1
- export declare function buildDTS(options: {
2
- engine: string;
3
- outDir: string;
4
- withIndex: boolean;
5
- withExports: boolean;
6
- withEditorExports: boolean;
7
- }): Promise<boolean>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-dts.d.ts","sourceRoot":"","sources":["../src/build-dts.ts"],"names":[],"mappings":"AAaA,wBAAsB,QAAQ,CAAE,OAAO,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,OAAO,CAAC,CA2OnB"}
@@ -1,297 +0,0 @@
1
- "use strict";
2
-
3
- var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = {
8
- enumerable: true,
9
- get: function () {
10
- return m[k];
11
- }
12
- };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- } : function (o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- });
19
- var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
20
- Object.defineProperty(o, "default", {
21
- enumerable: true,
22
- value: v
23
- });
24
- } : function (o, v) {
25
- o["default"] = v;
26
- });
27
- var __importStar = this && this.__importStar || function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
- __setModuleDefault(result, mod);
32
- return result;
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
- };
61
- var __importDefault = this && this.__importDefault || function (mod) {
62
- return mod && mod.__esModule ? mod : {
63
- "default": mod
64
- };
65
- };
66
- Object.defineProperty(exports, "__esModule", {
67
- value: true
68
- });
69
- exports.buildDTS = void 0;
70
- const fs_extra_1 = __importDefault(require("fs-extra"));
71
- const gift = __importStar(require("tfig"));
72
- const stats_query_1 = require("../../stats-query/lib/index.js");
73
- const utils_1 = require("../../utils/lib/index.js");
74
- const transpiler_1 = require("@ccbuild/transpiler");
75
- var ts = transpiler_1.typescript.core;
76
- const DEBUG = false;
77
- const REMOVE_OLD = !DEBUG;
78
- const RECOMPILE = !DEBUG;
79
- const REMOVE_UNBUNDLED_CACHE = !DEBUG;
80
- function buildDTS(options) {
81
- var _a;
82
- return __awaiter(this, void 0, void 0, function* () {
83
- console.log(`Typescript version: ${ts.version}`);
84
- const {
85
- engine,
86
- outDir,
87
- withIndex = true,
88
- withExports = false,
89
- withEditorExports = false
90
- } = options;
91
- yield fs_extra_1.default.ensureDir(outDir);
92
- console.debug(`With index: ${withIndex}`);
93
- console.debug(`With exports: ${withExports}`);
94
- console.debug(`With editor exports: ${withEditorExports}`);
95
- const statsQuery = yield stats_query_1.StatsQuery.create(engine);
96
- const tsConfigPath = statsQuery.tsConfigPath;
97
- const unbundledOutDir = utils_1.ps.join(outDir, '__before_bundle');
98
- const parsedCommandLine = ts.getParsedCommandLineOfConfigFile(tsConfigPath, {
99
- declaration: true,
100
- noEmit: false,
101
- emitDeclarationOnly: true,
102
- outFile: undefined,
103
- outDir: unbundledOutDir
104
- }, {
105
- onUnRecoverableConfigFileDiagnostic: () => {},
106
- useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
107
- readDirectory: ts.sys.readDirectory,
108
- getCurrentDirectory: ts.sys.getCurrentDirectory,
109
- fileExists: ts.sys.fileExists,
110
- readFile: ts.sys.readFile
111
- });
112
- if (!parsedCommandLine) {
113
- throw new Error(`Can not get 'parsedCommandLine'.`);
114
- }
115
- const unbundledOutDirNormalized = utils_1.ps.resolve(engine, parsedCommandLine.options.outDir);
116
- console.debug(`Unbundled will write to: ${unbundledOutDirNormalized}`);
117
- yield fs_extra_1.default.ensureDir(unbundledOutDirNormalized);
118
- if (REMOVE_OLD) {
119
- yield fs_extra_1.default.emptyDir(unbundledOutDirNormalized);
120
- }
121
- console.log(`Generating...`);
122
- const featureUnits = statsQuery.getFeatureUnits().filter(m => m !== 'wait-for-ammo-instantiation');
123
- const editorExportModules = statsQuery.getEditorPublicModules();
124
- if (RECOMPILE) {
125
- let fileNames = parsedCommandLine.fileNames;
126
- if (withEditorExports) {
127
- fileNames = fileNames.concat(editorExportModules.map(e => statsQuery.getEditorPublicModuleFile(e)));
128
- }
129
- const program = ts.createProgram(fileNames, parsedCommandLine.options);
130
- const emitResult = program.emit(undefined,
131
- // targetSourceFile
132
- undefined,
133
- // writeFile
134
- undefined,
135
- // cancellationToken,
136
- true,
137
- // emitOnlyDtsFiles
138
- undefined);
139
- const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
140
- for (const diagnostic of allDiagnostics) {
141
- let printer;
142
- switch (diagnostic.category) {
143
- case ts.DiagnosticCategory.Error:
144
- printer = console.error;
145
- break;
146
- case ts.DiagnosticCategory.Warning:
147
- printer = console.warn;
148
- break;
149
- case ts.DiagnosticCategory.Message:
150
- case ts.DiagnosticCategory.Suggestion:
151
- default:
152
- printer = console.log;
153
- break;
154
- }
155
- if (!printer) {
156
- continue;
157
- }
158
- if (diagnostic.file && diagnostic.start !== undefined) {
159
- const {
160
- line,
161
- character
162
- } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
163
- const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, ts.sys.newLine);
164
- printer(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
165
- } else {
166
- printer(`${ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n')}`);
167
- }
168
- }
169
- }
170
- // HACK: fix comments generated on top level namespace
171
- // // TODO:
172
- // let code = fs.readFileSync(tscOutputDtsFile, 'utf8');
173
- // const regExpRef = /(\/\/\/ <reference types.*)/g;
174
- // const matches = code.match(regExpRef);
175
- // code = code.replace(regExpRef, '');
176
- // if (matches) {
177
- // let outputUnbundledCode = matches.join('\n');
178
- // outputUnbundledCode += '\ndeclare const __skip_reference__: never;\n';
179
- // outputUnbundledCode += code;
180
- // fs.outputFileSync(tscOutputDtsFile, outputUnbundledCode, 'utf8');
181
- // }
182
- const patchSpineCoreDtsSource = utils_1.ps.join(engine, 'cocos', 'spine', 'lib', 'spine-core.d.ts');
183
- const patchSpineCoreDtsTarget = utils_1.ps.join(unbundledOutDirNormalized, 'cocos', 'spine', 'lib', 'spine-core.d.ts');
184
- if (!(yield fs_extra_1.default.pathExists(patchSpineCoreDtsSource))) {
185
- console.debug(`Does 'cocos/spine/lib/spine-core.d.ts' no longer existed? I have a patch for it.`);
186
- } else {
187
- console.debug(`It's ${new Date().toLocaleString()}, we're still doing the hack for spine-core.d.ts`);
188
- yield fs_extra_1.default.ensureDir(utils_1.ps.dirname(patchSpineCoreDtsTarget));
189
- yield fs_extra_1.default.copyFile(patchSpineCoreDtsSource, patchSpineCoreDtsTarget);
190
- }
191
- const giftInputs = [];
192
- const types = (_a = parsedCommandLine.options.types) === null || _a === void 0 ? void 0 : _a.map(typeFile => `${typeFile}.d.ts`);
193
- if (types) {
194
- for (let file of types) {
195
- const isBareSpecifier = !file.includes('/');
196
- if (isBareSpecifier) {
197
- file = require.resolve(`@types/${file.slice(0, -'.d.ts'.length)}`);
198
- }
199
- giftInputs.push(file);
200
- }
201
- }
202
- const listGiftInputs = dir => __awaiter(this, void 0, void 0, function* () {
203
- for (const file of yield fs_extra_1.default.readdir(dir)) {
204
- const path = utils_1.ps.join(dir, file);
205
- // eslint-disable-next-line no-await-in-loop
206
- const stats = yield fs_extra_1.default.stat(path);
207
- if (stats.isFile()) {
208
- giftInputs.push(path);
209
- } else if (stats.isDirectory()) {
210
- // eslint-disable-next-line no-await-in-loop
211
- yield listGiftInputs(path);
212
- }
213
- }
214
- });
215
- yield listGiftInputs(unbundledOutDirNormalized);
216
- const giftEntries = {};
217
- const getModuleNameInTsOutFile = moduleFile => {
218
- const path = utils_1.ps.relative(statsQuery.path, moduleFile);
219
- const pathDts = path.replace(/\.ts$/, '.d.ts');
220
- return utils_1.ps.join(unbundledOutDirNormalized, pathDts);
221
- };
222
- if (withExports) {
223
- for (const exportEntry of featureUnits) {
224
- giftEntries[exportEntry] = getModuleNameInTsOutFile(statsQuery.getFeatureUnitFile(exportEntry));
225
- }
226
- }
227
- if (withEditorExports) {
228
- for (const editorExportModule of editorExportModules) {
229
- giftEntries[editorExportModule] = getModuleNameInTsOutFile(statsQuery.getEditorPublicModuleFile(editorExportModule));
230
- }
231
- }
232
- let ccDtsFile;
233
- if (withIndex && !withExports) {
234
- ccDtsFile = utils_1.ps.join(unbundledOutDirNormalized, 'virtual-cc.d.ts');
235
- giftEntries.cc = ccDtsFile;
236
- giftInputs.push(ccDtsFile);
237
- const code = `// Auto-generated\n${statsQuery.evaluateIndexModuleSource(featureUnits, featureUnit => getModuleNameInTsOutFile(statsQuery.getFeatureUnitFile(featureUnit)).replace(/\\/g, '/').replace(/\.d.ts$/, ''))}\n`;
238
- yield fs_extra_1.default.writeFile(ccDtsFile, code, {
239
- encoding: 'utf8'
240
- });
241
- }
242
- console.log(`Bundling...`);
243
- try {
244
- const indexOutputPath = utils_1.ps.join(outDir, 'cc.d.ts');
245
- const giftResult = gift.bundle({
246
- input: giftInputs,
247
- rootDir: unbundledOutDirNormalized,
248
- name: 'cc',
249
- rootModule: 'index',
250
- entries: giftEntries,
251
- priority: [...(ccDtsFile ? [ccDtsFile] : []) // Things should be exported to 'cc' as far as possible.
252
- ],
253
-
254
- privateJsDocTag: 'engineInternal',
255
- groups: [{
256
- test: /^cc\/editor.*$/,
257
- path: utils_1.ps.join(outDir, 'cc.editor.d.ts')
258
- }, {
259
- test: /^cc\/.*$/,
260
- path: utils_1.ps.join(outDir, 'index.d.ts')
261
- }, {
262
- test: /^cc.*$/,
263
- path: indexOutputPath
264
- }],
265
- nonExportedSymbolDistribution: [{
266
- sourceModule: /cocos\/animation\/marionette/,
267
- targetModule: 'cc/editor/new-gen-anim'
268
- }, {
269
- sourceModule: /.*/,
270
- targetModule: 'cc'
271
- }]
272
- });
273
- yield Promise.all(giftResult.groups.map(group => __awaiter(this, void 0, void 0, function* () {
274
- yield fs_extra_1.default.outputFile(group.path, group.code, {
275
- encoding: 'utf8'
276
- });
277
- })));
278
- if (withIndex && withExports) {
279
- yield fs_extra_1.default.outputFile(indexOutputPath, buildIndexModule(featureUnits, statsQuery), {
280
- encoding: 'utf8'
281
- });
282
- }
283
- } catch (error) {
284
- console.error(error);
285
- return false;
286
- } finally {
287
- if (REMOVE_UNBUNDLED_CACHE) {
288
- yield fs_extra_1.default.remove(unbundledOutDirNormalized);
289
- }
290
- }
291
- return true;
292
- });
293
- }
294
- exports.buildDTS = buildDTS;
295
- function buildIndexModule(featureUnits, statsQuery) {
296
- return `declare module "cc" {\n${statsQuery.evaluateIndexModuleSource(featureUnits).split('\n').map(line => ` ${line}`).join('\n')}\n}`;
297
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-dts.js","sourceRoot":"","sources":["../src/build-dts.ts"],"names":[],"mappings":"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"}