metro-transform-worker 0.60.0 → 0.64.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.
- package/package.json +14 -12
- package/src/index.js +21 -18
- package/src/index.js.flow +20 -14
- package/src/utils/assetTransformer.js.flow +2 -2
- package/src.real/index.js +21 -18
- package/src.real/index.js.flow +20 -14
- package/src.real/utils/assetTransformer.js.flow +2 -2
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "metro-transform-worker",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "🚇 Transform worker for Metro",
|
|
3
|
+
"version": "0.64.0",
|
|
4
|
+
"description": "🚇 Transform worker for Metro.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -18,17 +18,19 @@
|
|
|
18
18
|
"@babel/parser": "^7.0.0",
|
|
19
19
|
"@babel/types": "^7.0.0",
|
|
20
20
|
"babel-preset-fbjs": "^3.3.0",
|
|
21
|
-
"metro
|
|
22
|
-
"metro-
|
|
23
|
-
"metro-
|
|
24
|
-
"metro-
|
|
25
|
-
"metro-
|
|
26
|
-
"metro": "0.
|
|
21
|
+
"metro": "0.64.0",
|
|
22
|
+
"metro-babel-transformer": "0.64.0",
|
|
23
|
+
"metro-cache": "0.64.0",
|
|
24
|
+
"metro-cache-key": "0.64.0",
|
|
25
|
+
"metro-hermes-compiler": "0.64.0",
|
|
26
|
+
"metro-source-map": "0.64.0",
|
|
27
|
+
"metro-transform-plugins": "0.64.0",
|
|
28
|
+
"nullthrows": "^1.1.1"
|
|
27
29
|
},
|
|
28
30
|
"devDependencies": {
|
|
29
|
-
"metro-
|
|
30
|
-
"metro-
|
|
31
|
-
"
|
|
32
|
-
"
|
|
31
|
+
"metro-memory-fs": "0.64.0",
|
|
32
|
+
"metro-minify-uglify": "0.64.0",
|
|
33
|
+
"metro-react-native-babel-transformer": "0.64.0",
|
|
34
|
+
"mkdirp": "^0.5.1"
|
|
33
35
|
}
|
|
34
36
|
}
|
package/src/index.js
CHANGED
|
@@ -189,9 +189,11 @@ const collectDependencies = require("metro/src/ModuleGraph/worker/collectDepende
|
|
|
189
189
|
|
|
190
190
|
const generateImportNames = require("metro/src/ModuleGraph/worker/generateImportNames");
|
|
191
191
|
|
|
192
|
+
const nullthrows = require("nullthrows");
|
|
193
|
+
|
|
192
194
|
const generate = require("@babel/generator").default;
|
|
193
195
|
|
|
194
|
-
const
|
|
196
|
+
const getCacheKey = require("metro-cache-key");
|
|
195
197
|
|
|
196
198
|
const getMinifier = require("./utils/getMinifier");
|
|
197
199
|
|
|
@@ -332,7 +334,7 @@ module.exports = {
|
|
|
332
334
|
}
|
|
333
335
|
|
|
334
336
|
if (filename.endsWith(".json")) {
|
|
335
|
-
let code = JsFileWrapping.wrapJson(sourceCode);
|
|
337
|
+
let code = JsFileWrapping.wrapJson(sourceCode, config.globalPrefix);
|
|
336
338
|
let map = [];
|
|
337
339
|
|
|
338
340
|
if (options.minify) {
|
|
@@ -395,6 +397,7 @@ module.exports = {
|
|
|
395
397
|
{
|
|
396
398
|
enableBabelRCLookup: config.enableBabelRCLookup,
|
|
397
399
|
enableBabelRuntime: config.enableBabelRuntime,
|
|
400
|
+
globalPrefix: config.globalPrefix,
|
|
398
401
|
// Inline requires are now performed at a secondary step. We cannot
|
|
399
402
|
// unfortunately remove it from the internal transformer, since this one
|
|
400
403
|
// is used by other tooling, and this would affect it.
|
|
@@ -481,20 +484,19 @@ module.exports = {
|
|
|
481
484
|
}
|
|
482
485
|
|
|
483
486
|
plugins.push([inlinePlugin, opts]);
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
ast = _transformFromAstSync.ast;
|
|
487
|
+
ast = nullthrows(
|
|
488
|
+
transformFromAstSync(ast, "", {
|
|
489
|
+
ast: true,
|
|
490
|
+
babelrc: false,
|
|
491
|
+
code: false,
|
|
492
|
+
configFile: false,
|
|
493
|
+
comments: false,
|
|
494
|
+
compact: false,
|
|
495
|
+
filename,
|
|
496
|
+
plugins,
|
|
497
|
+
sourceMaps: false
|
|
498
|
+
}).ast
|
|
499
|
+
);
|
|
498
500
|
let dependencyMapName = "";
|
|
499
501
|
let dependencies;
|
|
500
502
|
let wrappedAst; // If the module to transform is a script (meaning that is not part of the
|
|
@@ -535,7 +537,8 @@ module.exports = {
|
|
|
535
537
|
ast,
|
|
536
538
|
importDefault,
|
|
537
539
|
importAll,
|
|
538
|
-
dependencyMapName
|
|
540
|
+
dependencyMapName,
|
|
541
|
+
config.globalPrefix
|
|
539
542
|
);
|
|
540
543
|
|
|
541
544
|
wrappedAst = _JsFileWrapping$wrapM.ast;
|
|
@@ -625,7 +628,7 @@ module.exports = {
|
|
|
625
628
|
"minifierPath"
|
|
626
629
|
]);
|
|
627
630
|
|
|
628
|
-
const filesKey =
|
|
631
|
+
const filesKey = getCacheKey(
|
|
629
632
|
[
|
|
630
633
|
require.resolve(babelTransformerPath),
|
|
631
634
|
require.resolve(minifierPath),
|
package/src/index.js.flow
CHANGED
|
@@ -17,8 +17,9 @@ const assetTransformer = require('./utils/assetTransformer');
|
|
|
17
17
|
const babylon = require('@babel/parser');
|
|
18
18
|
const collectDependencies = require('metro/src/ModuleGraph/worker/collectDependencies');
|
|
19
19
|
const generateImportNames = require('metro/src/ModuleGraph/worker/generateImportNames');
|
|
20
|
+
const nullthrows = require('nullthrows');
|
|
20
21
|
const generate = require('@babel/generator').default;
|
|
21
|
-
const
|
|
22
|
+
const getCacheKey = require('metro-cache-key');
|
|
22
23
|
const getMinifier = require('./utils/getMinifier');
|
|
23
24
|
const {
|
|
24
25
|
constantFoldingPlugin,
|
|
@@ -85,6 +86,7 @@ export type JsTransformerConfig = $ReadOnly<{|
|
|
|
85
86
|
enableBabelRCLookup: boolean,
|
|
86
87
|
enableBabelRuntime: boolean,
|
|
87
88
|
experimentalImportBundleSupport: boolean,
|
|
89
|
+
globalPrefix: string,
|
|
88
90
|
minifierConfig: MinifierConfig,
|
|
89
91
|
minifierPath: string,
|
|
90
92
|
optimizationSizeLimit: number,
|
|
@@ -244,7 +246,7 @@ module.exports = {
|
|
|
244
246
|
}
|
|
245
247
|
|
|
246
248
|
if (filename.endsWith('.json')) {
|
|
247
|
-
let code = JsFileWrapping.wrapJson(sourceCode);
|
|
249
|
+
let code = JsFileWrapping.wrapJson(sourceCode, config.globalPrefix);
|
|
248
250
|
let map = [];
|
|
249
251
|
|
|
250
252
|
if (options.minify) {
|
|
@@ -297,6 +299,7 @@ module.exports = {
|
|
|
297
299
|
...options,
|
|
298
300
|
enableBabelRCLookup: config.enableBabelRCLookup,
|
|
299
301
|
enableBabelRuntime: config.enableBabelRuntime,
|
|
302
|
+
globalPrefix: config.globalPrefix,
|
|
300
303
|
// Inline requires are now performed at a secondary step. We cannot
|
|
301
304
|
// unfortunately remove it from the internal transformer, since this one
|
|
302
305
|
// is used by other tooling, and this would affect it.
|
|
@@ -370,17 +373,19 @@ module.exports = {
|
|
|
370
373
|
|
|
371
374
|
plugins.push([inlinePlugin, opts]);
|
|
372
375
|
|
|
373
|
-
|
|
374
|
-
ast
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
376
|
+
ast = nullthrows(
|
|
377
|
+
transformFromAstSync(ast, '', {
|
|
378
|
+
ast: true,
|
|
379
|
+
babelrc: false,
|
|
380
|
+
code: false,
|
|
381
|
+
configFile: false,
|
|
382
|
+
comments: false,
|
|
383
|
+
compact: false,
|
|
384
|
+
filename,
|
|
385
|
+
plugins,
|
|
386
|
+
sourceMaps: false,
|
|
387
|
+
}).ast,
|
|
388
|
+
);
|
|
384
389
|
|
|
385
390
|
let dependencyMapName = '';
|
|
386
391
|
let dependencies;
|
|
@@ -421,6 +426,7 @@ module.exports = {
|
|
|
421
426
|
importDefault,
|
|
422
427
|
importAll,
|
|
423
428
|
dependencyMapName,
|
|
429
|
+
config.globalPrefix,
|
|
424
430
|
));
|
|
425
431
|
}
|
|
426
432
|
|
|
@@ -490,7 +496,7 @@ module.exports = {
|
|
|
490
496
|
getCacheKey: (config: JsTransformerConfig): string => {
|
|
491
497
|
const {babelTransformerPath, minifierPath, ...remainingConfig} = config;
|
|
492
498
|
|
|
493
|
-
const filesKey =
|
|
499
|
+
const filesKey = getCacheKey([
|
|
494
500
|
require.resolve(babelTransformerPath),
|
|
495
501
|
require.resolve(minifierPath),
|
|
496
502
|
require.resolve('./utils/getMinifier'),
|
|
@@ -15,14 +15,14 @@ const path = require('path');
|
|
|
15
15
|
const {getAssetData} = require('metro/src/Assets');
|
|
16
16
|
const {generateAssetCodeFileAst} = require('metro/src/Bundler/util');
|
|
17
17
|
|
|
18
|
-
import type {
|
|
18
|
+
import type {File} from '@babel/types';
|
|
19
19
|
import type {BabelTransformerArgs} from 'metro-babel-transformer';
|
|
20
20
|
|
|
21
21
|
async function transform(
|
|
22
22
|
{filename, options, src}: BabelTransformerArgs,
|
|
23
23
|
assetRegistryPath: string,
|
|
24
24
|
assetDataPlugins: $ReadOnlyArray<string>,
|
|
25
|
-
): Promise<{ast:
|
|
25
|
+
): Promise<{ast: File, ...}> {
|
|
26
26
|
options = options || {
|
|
27
27
|
platform: '',
|
|
28
28
|
projectRoot: '',
|
package/src.real/index.js
CHANGED
|
@@ -171,9 +171,11 @@ const collectDependencies = require("metro/src/ModuleGraph/worker/collectDepende
|
|
|
171
171
|
|
|
172
172
|
const generateImportNames = require("metro/src/ModuleGraph/worker/generateImportNames");
|
|
173
173
|
|
|
174
|
+
const nullthrows = require("nullthrows");
|
|
175
|
+
|
|
174
176
|
const generate = require("@babel/generator").default;
|
|
175
177
|
|
|
176
|
-
const
|
|
178
|
+
const getCacheKey = require("metro-cache-key");
|
|
177
179
|
|
|
178
180
|
const getMinifier = require("./utils/getMinifier");
|
|
179
181
|
|
|
@@ -314,7 +316,7 @@ module.exports = {
|
|
|
314
316
|
}
|
|
315
317
|
|
|
316
318
|
if (filename.endsWith(".json")) {
|
|
317
|
-
let code = JsFileWrapping.wrapJson(sourceCode);
|
|
319
|
+
let code = JsFileWrapping.wrapJson(sourceCode, config.globalPrefix);
|
|
318
320
|
let map = [];
|
|
319
321
|
|
|
320
322
|
if (options.minify) {
|
|
@@ -377,6 +379,7 @@ module.exports = {
|
|
|
377
379
|
{
|
|
378
380
|
enableBabelRCLookup: config.enableBabelRCLookup,
|
|
379
381
|
enableBabelRuntime: config.enableBabelRuntime,
|
|
382
|
+
globalPrefix: config.globalPrefix,
|
|
380
383
|
// Inline requires are now performed at a secondary step. We cannot
|
|
381
384
|
// unfortunately remove it from the internal transformer, since this one
|
|
382
385
|
// is used by other tooling, and this would affect it.
|
|
@@ -463,20 +466,19 @@ module.exports = {
|
|
|
463
466
|
}
|
|
464
467
|
|
|
465
468
|
plugins.push([inlinePlugin, opts]);
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
ast = _transformFromAstSync.ast;
|
|
469
|
+
ast = nullthrows(
|
|
470
|
+
transformFromAstSync(ast, "", {
|
|
471
|
+
ast: true,
|
|
472
|
+
babelrc: false,
|
|
473
|
+
code: false,
|
|
474
|
+
configFile: false,
|
|
475
|
+
comments: false,
|
|
476
|
+
compact: false,
|
|
477
|
+
filename,
|
|
478
|
+
plugins,
|
|
479
|
+
sourceMaps: false
|
|
480
|
+
}).ast
|
|
481
|
+
);
|
|
480
482
|
let dependencyMapName = "";
|
|
481
483
|
let dependencies;
|
|
482
484
|
let wrappedAst; // If the module to transform is a script (meaning that is not part of the
|
|
@@ -517,7 +519,8 @@ module.exports = {
|
|
|
517
519
|
ast,
|
|
518
520
|
importDefault,
|
|
519
521
|
importAll,
|
|
520
|
-
dependencyMapName
|
|
522
|
+
dependencyMapName,
|
|
523
|
+
config.globalPrefix
|
|
521
524
|
);
|
|
522
525
|
|
|
523
526
|
wrappedAst = _JsFileWrapping$wrapM.ast;
|
|
@@ -607,7 +610,7 @@ module.exports = {
|
|
|
607
610
|
"minifierPath"
|
|
608
611
|
]);
|
|
609
612
|
|
|
610
|
-
const filesKey =
|
|
613
|
+
const filesKey = getCacheKey(
|
|
611
614
|
[
|
|
612
615
|
require.resolve(babelTransformerPath),
|
|
613
616
|
require.resolve(minifierPath),
|
package/src.real/index.js.flow
CHANGED
|
@@ -17,8 +17,9 @@ const assetTransformer = require('./utils/assetTransformer');
|
|
|
17
17
|
const babylon = require('@babel/parser');
|
|
18
18
|
const collectDependencies = require('metro/src/ModuleGraph/worker/collectDependencies');
|
|
19
19
|
const generateImportNames = require('metro/src/ModuleGraph/worker/generateImportNames');
|
|
20
|
+
const nullthrows = require('nullthrows');
|
|
20
21
|
const generate = require('@babel/generator').default;
|
|
21
|
-
const
|
|
22
|
+
const getCacheKey = require('metro-cache-key');
|
|
22
23
|
const getMinifier = require('./utils/getMinifier');
|
|
23
24
|
const {
|
|
24
25
|
constantFoldingPlugin,
|
|
@@ -85,6 +86,7 @@ export type JsTransformerConfig = $ReadOnly<{|
|
|
|
85
86
|
enableBabelRCLookup: boolean,
|
|
86
87
|
enableBabelRuntime: boolean,
|
|
87
88
|
experimentalImportBundleSupport: boolean,
|
|
89
|
+
globalPrefix: string,
|
|
88
90
|
minifierConfig: MinifierConfig,
|
|
89
91
|
minifierPath: string,
|
|
90
92
|
optimizationSizeLimit: number,
|
|
@@ -244,7 +246,7 @@ module.exports = {
|
|
|
244
246
|
}
|
|
245
247
|
|
|
246
248
|
if (filename.endsWith('.json')) {
|
|
247
|
-
let code = JsFileWrapping.wrapJson(sourceCode);
|
|
249
|
+
let code = JsFileWrapping.wrapJson(sourceCode, config.globalPrefix);
|
|
248
250
|
let map = [];
|
|
249
251
|
|
|
250
252
|
if (options.minify) {
|
|
@@ -297,6 +299,7 @@ module.exports = {
|
|
|
297
299
|
...options,
|
|
298
300
|
enableBabelRCLookup: config.enableBabelRCLookup,
|
|
299
301
|
enableBabelRuntime: config.enableBabelRuntime,
|
|
302
|
+
globalPrefix: config.globalPrefix,
|
|
300
303
|
// Inline requires are now performed at a secondary step. We cannot
|
|
301
304
|
// unfortunately remove it from the internal transformer, since this one
|
|
302
305
|
// is used by other tooling, and this would affect it.
|
|
@@ -370,17 +373,19 @@ module.exports = {
|
|
|
370
373
|
|
|
371
374
|
plugins.push([inlinePlugin, opts]);
|
|
372
375
|
|
|
373
|
-
|
|
374
|
-
ast
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
376
|
+
ast = nullthrows(
|
|
377
|
+
transformFromAstSync(ast, '', {
|
|
378
|
+
ast: true,
|
|
379
|
+
babelrc: false,
|
|
380
|
+
code: false,
|
|
381
|
+
configFile: false,
|
|
382
|
+
comments: false,
|
|
383
|
+
compact: false,
|
|
384
|
+
filename,
|
|
385
|
+
plugins,
|
|
386
|
+
sourceMaps: false,
|
|
387
|
+
}).ast,
|
|
388
|
+
);
|
|
384
389
|
|
|
385
390
|
let dependencyMapName = '';
|
|
386
391
|
let dependencies;
|
|
@@ -421,6 +426,7 @@ module.exports = {
|
|
|
421
426
|
importDefault,
|
|
422
427
|
importAll,
|
|
423
428
|
dependencyMapName,
|
|
429
|
+
config.globalPrefix,
|
|
424
430
|
));
|
|
425
431
|
}
|
|
426
432
|
|
|
@@ -490,7 +496,7 @@ module.exports = {
|
|
|
490
496
|
getCacheKey: (config: JsTransformerConfig): string => {
|
|
491
497
|
const {babelTransformerPath, minifierPath, ...remainingConfig} = config;
|
|
492
498
|
|
|
493
|
-
const filesKey =
|
|
499
|
+
const filesKey = getCacheKey([
|
|
494
500
|
require.resolve(babelTransformerPath),
|
|
495
501
|
require.resolve(minifierPath),
|
|
496
502
|
require.resolve('./utils/getMinifier'),
|
|
@@ -15,14 +15,14 @@ const path = require('path');
|
|
|
15
15
|
const {getAssetData} = require('metro/src/Assets');
|
|
16
16
|
const {generateAssetCodeFileAst} = require('metro/src/Bundler/util');
|
|
17
17
|
|
|
18
|
-
import type {
|
|
18
|
+
import type {File} from '@babel/types';
|
|
19
19
|
import type {BabelTransformerArgs} from 'metro-babel-transformer';
|
|
20
20
|
|
|
21
21
|
async function transform(
|
|
22
22
|
{filename, options, src}: BabelTransformerArgs,
|
|
23
23
|
assetRegistryPath: string,
|
|
24
24
|
assetDataPlugins: $ReadOnlyArray<string>,
|
|
25
|
-
): Promise<{ast:
|
|
25
|
+
): Promise<{ast: File, ...}> {
|
|
26
26
|
options = options || {
|
|
27
27
|
platform: '',
|
|
28
28
|
projectRoot: '',
|