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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "metro-transform-worker",
3
- "version": "0.60.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-babel-transformer": "0.60.0",
22
- "metro-cache": "0.60.0",
23
- "metro-hermes-compiler": "0.60.0",
24
- "metro-source-map": "0.60.0",
25
- "metro-transform-plugins": "0.60.0",
26
- "metro": "0.60.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-minify-uglify": "0.60.0",
30
- "metro-memory-fs": "0.60.0",
31
- "mkdirp": "^0.5.1",
32
- "metro-react-native-babel-transformer": "0.60.0"
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 getKeyFromFiles = require("metro/src/lib/getKeyFromFiles");
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
- var _transformFromAstSync = transformFromAstSync(ast, "", {
486
- ast: true,
487
- babelrc: false,
488
- code: false,
489
- configFile: false,
490
- comments: false,
491
- compact: false,
492
- filename,
493
- plugins,
494
- sourceMaps: false
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 = getKeyFromFiles(
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 getKeyFromFiles = require('metro/src/lib/getKeyFromFiles');
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
- ({ast} = transformFromAstSync(ast, '', {
374
- ast: true,
375
- babelrc: false,
376
- code: false,
377
- configFile: false,
378
- comments: false,
379
- compact: false,
380
- filename,
381
- plugins,
382
- sourceMaps: false,
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 = getKeyFromFiles([
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 {Ast} from '@babel/core';
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: 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 getKeyFromFiles = require("metro/src/lib/getKeyFromFiles");
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
- var _transformFromAstSync = transformFromAstSync(ast, "", {
468
- ast: true,
469
- babelrc: false,
470
- code: false,
471
- configFile: false,
472
- comments: false,
473
- compact: false,
474
- filename,
475
- plugins,
476
- sourceMaps: false
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 = getKeyFromFiles(
613
+ const filesKey = getCacheKey(
611
614
  [
612
615
  require.resolve(babelTransformerPath),
613
616
  require.resolve(minifierPath),
@@ -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 getKeyFromFiles = require('metro/src/lib/getKeyFromFiles');
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
- ({ast} = transformFromAstSync(ast, '', {
374
- ast: true,
375
- babelrc: false,
376
- code: false,
377
- configFile: false,
378
- comments: false,
379
- compact: false,
380
- filename,
381
- plugins,
382
- sourceMaps: false,
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 = getKeyFromFiles([
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 {Ast} from '@babel/core';
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: Ast, ...}> {
25
+ ): Promise<{ast: File, ...}> {
26
26
  options = options || {
27
27
  platform: '',
28
28
  projectRoot: '',