metro 0.83.0 → 0.83.2

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 (208) hide show
  1. package/package.json +16 -16
  2. package/src/Assets.js +68 -42
  3. package/src/Assets.js.flow +13 -24
  4. package/src/Bundler/util.js +40 -17
  5. package/src/Bundler/util.js.flow +6 -13
  6. package/src/Bundler.js +17 -6
  7. package/src/Bundler.js.flow +3 -7
  8. package/src/DeltaBundler/DeltaCalculator.js +15 -15
  9. package/src/DeltaBundler/DeltaCalculator.js.flow +4 -7
  10. package/src/DeltaBundler/Graph.js +45 -40
  11. package/src/DeltaBundler/Graph.js.flow +3 -4
  12. package/src/DeltaBundler/Serializers/baseJSBundle.js +24 -10
  13. package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +6 -9
  14. package/src/DeltaBundler/Serializers/getAllFiles.js +9 -6
  15. package/src/DeltaBundler/Serializers/getAllFiles.js.flow +4 -8
  16. package/src/DeltaBundler/Serializers/getAssets.js +18 -11
  17. package/src/DeltaBundler/Serializers/getAssets.js.flow +5 -9
  18. package/src/DeltaBundler/Serializers/getExplodedSourceMap.d.ts +26 -0
  19. package/src/DeltaBundler/Serializers/getExplodedSourceMap.js +7 -6
  20. package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +3 -9
  21. package/src/DeltaBundler/Serializers/getRamBundleInfo.js +40 -23
  22. package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +11 -18
  23. package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +4 -1
  24. package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js.flow +1 -5
  25. package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +7 -4
  26. package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js.flow +3 -7
  27. package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +4 -1
  28. package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js.flow +2 -6
  29. package/src/DeltaBundler/Serializers/helpers/js.js +65 -31
  30. package/src/DeltaBundler/Serializers/helpers/js.js.flow +21 -21
  31. package/src/DeltaBundler/Serializers/helpers/processModules.js +8 -5
  32. package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -7
  33. package/src/DeltaBundler/Serializers/hmrJSBundle.js +70 -25
  34. package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +43 -33
  35. package/src/DeltaBundler/Serializers/sourceMapGenerator.js +19 -16
  36. package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +6 -14
  37. package/src/DeltaBundler/Serializers/sourceMapObject.js +12 -10
  38. package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +4 -9
  39. package/src/DeltaBundler/Serializers/sourceMapString.js +14 -12
  40. package/src/DeltaBundler/Serializers/sourceMapString.js.flow +4 -9
  41. package/src/DeltaBundler/Transformer.js +32 -27
  42. package/src/DeltaBundler/Transformer.js.flow +10 -17
  43. package/src/DeltaBundler/Worker.flow.js +25 -18
  44. package/src/DeltaBundler/Worker.flow.js.flow +12 -18
  45. package/src/DeltaBundler/Worker.js.flow +2 -0
  46. package/src/DeltaBundler/WorkerFarm.js +13 -11
  47. package/src/DeltaBundler/WorkerFarm.js.flow +7 -9
  48. package/src/DeltaBundler/buildSubgraph.js +13 -17
  49. package/src/DeltaBundler/buildSubgraph.js.flow +1 -1
  50. package/src/DeltaBundler/getTransformCacheKey.js +12 -6
  51. package/src/DeltaBundler/getTransformCacheKey.js.flow +5 -7
  52. package/src/DeltaBundler/mergeDeltas.js +4 -1
  53. package/src/DeltaBundler/mergeDeltas.js.flow +5 -6
  54. package/src/DeltaBundler/types.d.ts +4 -1
  55. package/src/DeltaBundler/{types.flow.js → types.js} +1 -5
  56. package/src/DeltaBundler/{types.flow.js.flow → types.js.flow} +5 -3
  57. package/src/DeltaBundler.js +15 -6
  58. package/src/DeltaBundler.js.flow +4 -8
  59. package/src/HmrServer.js +116 -68
  60. package/src/HmrServer.js.flow +41 -52
  61. package/src/IncrementalBundler/GraphNotFoundError.js +5 -1
  62. package/src/IncrementalBundler/GraphNotFoundError.js.flow +1 -5
  63. package/src/IncrementalBundler/ResourceNotFoundError.js +5 -1
  64. package/src/IncrementalBundler/ResourceNotFoundError.js.flow +1 -5
  65. package/src/IncrementalBundler/RevisionNotFoundError.js +5 -1
  66. package/src/IncrementalBundler/RevisionNotFoundError.js.flow +1 -5
  67. package/src/IncrementalBundler.js +71 -35
  68. package/src/IncrementalBundler.js.flow +12 -16
  69. package/src/ModuleGraph/test-helpers.js +19 -14
  70. package/src/ModuleGraph/worker/JsFileWrapping.js +22 -29
  71. package/src/ModuleGraph/worker/JsFileWrapping.js.flow +1 -10
  72. package/src/ModuleGraph/worker/collectDependencies.js +81 -52
  73. package/src/ModuleGraph/worker/collectDependencies.js.flow +15 -22
  74. package/src/ModuleGraph/worker/generateImportNames.js +12 -6
  75. package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -7
  76. package/src/ModuleGraph/worker/importLocationsPlugin.js +5 -4
  77. package/src/ModuleGraph/worker/importLocationsPlugin.js.flow +2 -4
  78. package/src/Server/MultipartResponse.js +11 -4
  79. package/src/Server/MultipartResponse.js.flow +2 -5
  80. package/src/Server/symbolicate.d.ts +31 -0
  81. package/src/Server/symbolicate.js +15 -16
  82. package/src/Server/symbolicate.js.flow +6 -16
  83. package/src/Server.d.ts +0 -1
  84. package/src/Server.js +298 -191
  85. package/src/Server.js.flow +136 -99
  86. package/src/cli-utils.js +13 -4
  87. package/src/cli-utils.js.flow +3 -5
  88. package/src/cli.js.flow +2 -0
  89. package/src/commands/build.js +18 -15
  90. package/src/commands/build.js.flow +6 -6
  91. package/src/commands/dependencies.js +26 -16
  92. package/src/commands/dependencies.js.flow +7 -9
  93. package/src/commands/serve.js +16 -11
  94. package/src/commands/serve.js.flow +5 -6
  95. package/src/index.d.ts +26 -3
  96. package/src/index.flow.js +162 -72
  97. package/src/index.flow.js.flow +60 -47
  98. package/src/index.js.flow +2 -0
  99. package/src/integration_tests/basic_bundle/TestBundle.js.flow +2 -1
  100. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js +1 -5
  101. package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js +1 -5
  102. package/src/integration_tests/basic_bundle/import-export/index.js +5 -13
  103. package/src/integration_tests/basic_bundle/require-context/mode-eager.js +2 -2
  104. package/src/integration_tests/basic_bundle/require-context/mode-lazy-once.js +2 -2
  105. package/src/integration_tests/basic_bundle/require-context/mode-lazy.js +2 -2
  106. package/src/integration_tests/basic_bundle/require-context/mode-sync.js +1 -1
  107. package/src/integration_tests/basic_bundle/require-context/utils.js +1 -1
  108. package/src/integration_tests/execBundle.js +7 -4
  109. package/src/integration_tests/execBundle.js.flow +1 -3
  110. package/src/integration_tests/metro.config.js +3 -3
  111. package/src/lib/BatchProcessor.js +15 -5
  112. package/src/lib/BatchProcessor.js.flow +2 -6
  113. package/src/lib/CountingSet.js.flow +2 -2
  114. package/src/lib/JsonReporter.js +6 -2
  115. package/src/lib/JsonReporter.js.flow +1 -5
  116. package/src/lib/RamBundleParser.js +12 -3
  117. package/src/lib/RamBundleParser.js.flow +2 -6
  118. package/src/lib/TerminalReporter.js +95 -56
  119. package/src/lib/TerminalReporter.js.flow +9 -12
  120. package/src/lib/bundleToString.js +4 -1
  121. package/src/lib/bundleToString.js.flow +2 -9
  122. package/src/lib/contextModule.js +3 -7
  123. package/src/lib/contextModuleTemplates.js +9 -19
  124. package/src/lib/countLines.js +5 -1
  125. package/src/lib/countLines.js.flow +1 -3
  126. package/src/lib/createWebsocketServer.js +7 -7
  127. package/src/lib/createWebsocketServer.js.flow +4 -4
  128. package/src/lib/debounceAsyncQueue.js +4 -1
  129. package/src/lib/debounceAsyncQueue.js.flow +1 -5
  130. package/src/lib/formatBundlingError.js +32 -22
  131. package/src/lib/formatBundlingError.js.flow +18 -20
  132. package/src/lib/getAppendScripts.js +20 -20
  133. package/src/lib/getAppendScripts.js.flow +9 -13
  134. package/src/lib/getGraphId.js +12 -6
  135. package/src/lib/getGraphId.js.flow +4 -10
  136. package/src/lib/getPreludeCode.js +7 -10
  137. package/src/lib/getPreludeCode.js.flow +2 -6
  138. package/src/lib/getPrependedScripts.js +40 -16
  139. package/src/lib/getPrependedScripts.js.flow +8 -13
  140. package/src/lib/isResolvedDependency.js.flow +1 -1
  141. package/src/lib/logToConsole.js +18 -12
  142. package/src/lib/logToConsole.js.flow +5 -14
  143. package/src/lib/parseBundleOptionsFromBundleRequestUrl.js +144 -0
  144. package/src/lib/parseBundleOptionsFromBundleRequestUrl.js.flow +146 -0
  145. package/src/lib/parseCustomResolverOptions.js +8 -6
  146. package/src/lib/parseCustomResolverOptions.js.flow +6 -12
  147. package/src/lib/parseCustomTransformOptions.js +8 -6
  148. package/src/lib/parseCustomTransformOptions.js.flow +11 -14
  149. package/src/lib/parseJsonBody.js +4 -1
  150. package/src/lib/parseJsonBody.js.flow +1 -3
  151. package/src/lib/pathUtils.js +34 -0
  152. package/src/lib/pathUtils.js.flow +16 -0
  153. package/src/lib/relativizeSourceMap.js +12 -3
  154. package/src/lib/relativizeSourceMap.js.flow +2 -6
  155. package/src/lib/reporting.js +25 -19
  156. package/src/lib/reporting.js.flow +6 -16
  157. package/src/lib/splitBundleOptions.js +4 -2
  158. package/src/lib/splitBundleOptions.js.flow +4 -7
  159. package/src/lib/transformHelpers.js +19 -25
  160. package/src/lib/transformHelpers.js.flow +5 -15
  161. package/src/node-haste/DependencyGraph/ModuleResolution.js +75 -57
  162. package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +28 -44
  163. package/src/node-haste/DependencyGraph/createFileMap.js +15 -13
  164. package/src/node-haste/DependencyGraph/createFileMap.js.flow +2 -5
  165. package/src/node-haste/DependencyGraph.js +61 -45
  166. package/src/node-haste/DependencyGraph.js.flow +34 -31
  167. package/src/node-haste/Package.js +13 -6
  168. package/src/node-haste/Package.js.flow +3 -7
  169. package/src/node-haste/{ModuleCache.js → PackageCache.js} +11 -19
  170. package/src/node-haste/{ModuleCache.js.flow → PackageCache.js.flow} +2 -30
  171. package/src/node-haste/lib/AssetPaths.js +14 -8
  172. package/src/node-haste/lib/AssetPaths.js.flow +7 -8
  173. package/src/node-haste/lib/parsePlatformFilePath.js +10 -4
  174. package/src/node-haste/lib/parsePlatformFilePath.js.flow +2 -6
  175. package/src/shared/output/RamBundle/as-assets.js +42 -22
  176. package/src/shared/output/RamBundle/as-assets.js.flow +12 -15
  177. package/src/shared/output/RamBundle/as-indexed-file.js +33 -23
  178. package/src/shared/output/RamBundle/as-indexed-file.js.flow +10 -16
  179. package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +11 -10
  180. package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +4 -6
  181. package/src/shared/output/RamBundle/magic-number.js +5 -1
  182. package/src/shared/output/RamBundle/magic-number.js.flow +1 -3
  183. package/src/shared/output/RamBundle/util.js +21 -18
  184. package/src/shared/output/RamBundle/util.js.flow +4 -6
  185. package/src/shared/output/RamBundle/write-sourcemap.js +9 -3
  186. package/src/shared/output/RamBundle/write-sourcemap.js.flow +2 -6
  187. package/src/shared/output/RamBundle.js +16 -9
  188. package/src/shared/output/RamBundle.js.flow +8 -12
  189. package/src/shared/output/bundle.flow.js +37 -13
  190. package/src/shared/output/bundle.flow.js.flow +24 -12
  191. package/src/shared/output/bundle.js.flow +2 -0
  192. package/src/shared/output/meta.js +16 -9
  193. package/src/shared/output/meta.js.flow +3 -5
  194. package/src/shared/output/unbundle.js +14 -1
  195. package/src/shared/output/unbundle.js.flow +1 -3
  196. package/src/shared/output/writeFile.js +11 -4
  197. package/src/shared/output/writeFile.js.flow +3 -5
  198. package/src/shared/types.d.ts +0 -1
  199. package/src/shared/{types.flow.js.flow → types.js.flow} +16 -17
  200. package/src/lib/createModuleIdFactory.js +0 -15
  201. package/src/lib/createModuleIdFactory.js.flow +0 -27
  202. package/src/lib/getMaxWorkers.js +0 -9
  203. package/src/lib/getMaxWorkers.js.flow +0 -22
  204. package/src/lib/parseOptionsFromUrl.js +0 -62
  205. package/src/lib/parseOptionsFromUrl.js.flow +0 -97
  206. package/src/node-haste/Module.js +0 -24
  207. package/src/node-haste/Module.js.flow +0 -41
  208. /package/src/shared/{types.flow.js → types.js} +0 -0
@@ -9,27 +9,27 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
12
  import type {TransformResult, TransformResultWithSource} from '../DeltaBundler';
15
13
  import type {TransformerConfig, TransformOptions} from './Worker';
16
14
  import type {ConfigT} from 'metro-config';
17
15
 
16
+ import {normalizePathSeparatorsToPosix} from '../lib/pathUtils';
17
+ import getTransformCacheKey from './getTransformCacheKey';
18
+ import WorkerFarm from './WorkerFarm';
19
+ import assert from 'assert';
18
20
  import crypto from 'crypto';
21
+ import fs from 'fs';
22
+ import {Cache, stableHash} from 'metro-cache';
23
+ import path from 'path';
19
24
 
20
- const getTransformCacheKey = require('./getTransformCacheKey');
21
- const WorkerFarm = require('./WorkerFarm');
22
- const assert = require('assert');
25
+ // eslint-disable-next-line import/no-commonjs
23
26
  const debug = require('debug')('Metro:Transformer');
24
- const fs = require('fs');
25
- const {Cache, stableHash} = require('metro-cache');
26
- const path = require('path');
27
27
 
28
28
  type GetOrComputeSha1Fn = string => Promise<
29
29
  $ReadOnly<{content?: Buffer, sha1: string}>,
30
30
  >;
31
31
 
32
- class Transformer {
32
+ export default class Transformer {
33
33
  _config: ConfigT;
34
34
  _cache: Cache<TransformResult<>>;
35
35
  _baseHash: string;
@@ -87,14 +87,12 @@ class Transformer {
87
87
  customTransformOptions,
88
88
  dev,
89
89
  experimentalImportSupport,
90
- hot,
91
90
  inlinePlatform,
92
91
  inlineRequires,
93
92
  minify,
94
93
  nonInlinedRequires,
95
94
  platform,
96
95
  type,
97
- unstable_disableES6Transforms,
98
96
  unstable_transformProfile,
99
97
  unstable_memoizeInlineRequires,
100
98
  unstable_nonMemoizedInlineRequires,
@@ -119,19 +117,16 @@ class Transformer {
119
117
  // Project-relative, posix-separated path for portability. Necessary in
120
118
  // addition to content hash because transformers receive path as an
121
119
  // input, and may apply e.g. extension-based logic.
122
- path.sep === '/' ? localPath : localPath.replaceAll(path.sep, '/'),
123
-
120
+ normalizePathSeparatorsToPosix(localPath),
124
121
  customTransformOptions,
125
122
  dev,
126
123
  experimentalImportSupport,
127
- hot,
128
124
  inlinePlatform,
129
125
  inlineRequires,
130
126
  minify,
131
127
  nonInlinedRequires,
132
128
  platform,
133
129
  type,
134
- unstable_disableES6Transforms,
135
130
  unstable_memoizeInlineRequires,
136
131
  unstable_nonMemoizedInlineRequires,
137
132
  unstable_transformProfile,
@@ -212,5 +207,3 @@ function verifyRootExists(root: string): void {
212
207
  // Verify that the root exists.
213
208
  assert(fs.statSync(root).isDirectory(), 'Root has to be a valid directory');
214
209
  }
215
-
216
- module.exports = Transformer;
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
2
 
3
- const traverse = require("@babel/traverse").default;
4
- const crypto = require("crypto");
5
- const fs = require("fs");
6
- const path = require("path");
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.transform = void 0;
7
+ var _traverse = _interopRequireDefault(require("@babel/traverse"));
8
+ var _crypto = _interopRequireDefault(require("crypto"));
9
+ var _fs = _interopRequireDefault(require("fs"));
10
+ var _path = _interopRequireDefault(require("path"));
11
+ function _interopRequireDefault(e) {
12
+ return e && e.__esModule ? e : { default: e };
13
+ }
7
14
  function asDeserializedBuffer(value) {
8
15
  if (Buffer.isBuffer(value)) {
9
16
  return value;
@@ -16,34 +23,37 @@ function asDeserializedBuffer(value) {
16
23
  }
17
24
  return null;
18
25
  }
19
- async function transform(
26
+ const transform = (
20
27
  filename,
21
28
  transformOptions,
22
29
  projectRoot,
23
30
  transformerConfig,
24
- fileBuffer
25
- ) {
31
+ fileBuffer,
32
+ ) => {
26
33
  let data;
27
34
  const fileBufferObject = asDeserializedBuffer(fileBuffer);
28
35
  if (fileBufferObject) {
29
36
  data = fileBufferObject;
30
37
  } else {
31
- data = fs.readFileSync(path.resolve(projectRoot, filename));
38
+ data = _fs.default.readFileSync(
39
+ _path.default.resolve(projectRoot, filename),
40
+ );
32
41
  }
33
42
  return transformFile(
34
43
  filename,
35
44
  data,
36
45
  transformOptions,
37
46
  projectRoot,
38
- transformerConfig
47
+ transformerConfig,
39
48
  );
40
- }
49
+ };
50
+ exports.transform = transform;
41
51
  async function transformFile(
42
52
  filename,
43
53
  data,
44
54
  transformOptions,
45
55
  projectRoot,
46
- transformerConfig
56
+ transformerConfig,
47
57
  ) {
48
58
  const Transformer = require.call(null, transformerConfig.transformerPath);
49
59
  const transformFileStartLogEntry = {
@@ -53,18 +63,18 @@ async function transformFile(
53
63
  log_entry_label: "Transforming file",
54
64
  start_timestamp: process.hrtime(),
55
65
  };
56
- const sha1 = crypto.createHash("sha1").update(data).digest("hex");
66
+ const sha1 = _crypto.default.createHash("sha1").update(data).digest("hex");
57
67
  const result = await Transformer.transform(
58
68
  transformerConfig.transformerConfig,
59
69
  projectRoot,
60
70
  filename,
61
71
  data,
62
- transformOptions
72
+ transformOptions,
63
73
  );
64
- traverse.cache.clear();
74
+ _traverse.default.cache.clear();
65
75
  const transformFileEndLogEntry = getEndLogEntry(
66
76
  transformFileStartLogEntry,
67
- filename
77
+ filename,
68
78
  );
69
79
  return {
70
80
  result,
@@ -84,6 +94,3 @@ function getEndLogEntry(startLogEntry, filename) {
84
94
  log_entry_label: "Transforming file",
85
95
  };
86
96
  }
87
- module.exports = {
88
- transform,
89
- };
@@ -9,26 +9,20 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
- import type {TransformResult} from './types.flow';
12
+ import type {TransformResult} from './types';
15
13
  import type {LogEntry} from 'metro-core/private/Logger';
16
14
  import type {
17
15
  JsTransformerConfig,
18
16
  JsTransformOptions,
19
17
  } from 'metro-transform-worker';
20
18
 
21
- const traverse = require('@babel/traverse').default;
22
- const crypto = require('crypto');
23
- const fs = require('fs');
24
- const path = require('path');
19
+ import traverse from '@babel/traverse';
20
+ import crypto from 'crypto';
21
+ import fs from 'fs';
22
+ import path from 'path';
25
23
 
26
24
  export type {JsTransformOptions as TransformOptions} from 'metro-transform-worker';
27
25
 
28
- export type Worker = {
29
- +transform: typeof transform,
30
- };
31
-
32
26
  type TransformerInterface = {
33
27
  transform(
34
28
  JsTransformerConfig,
@@ -72,13 +66,13 @@ function asDeserializedBuffer(value: any): Buffer | null {
72
66
  return null;
73
67
  }
74
68
 
75
- async function transform(
69
+ export const transform = (
76
70
  filename: string,
77
71
  transformOptions: JsTransformOptions,
78
72
  projectRoot: string,
79
73
  transformerConfig: TransformerConfig,
80
74
  fileBuffer?: Buffer,
81
- ): Promise<Data> {
75
+ ): Promise<Data> => {
82
76
  let data;
83
77
 
84
78
  const fileBufferObject = asDeserializedBuffer(fileBuffer);
@@ -94,7 +88,11 @@ async function transform(
94
88
  projectRoot,
95
89
  transformerConfig,
96
90
  );
97
- }
91
+ };
92
+
93
+ export type Worker = {
94
+ +transform: typeof transform,
95
+ };
98
96
 
99
97
  async function transformFile(
100
98
  filename: string,
@@ -160,7 +158,3 @@ function getEndLogEntry(startLogEntry: LogEntry, filename: string): LogEntry {
160
158
  log_entry_label: 'Transforming file',
161
159
  };
162
160
  }
163
-
164
- module.exports = ({
165
- transform,
166
- }: Worker);
@@ -9,6 +9,8 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
+ /* eslint-disable import/no-commonjs */
13
+
12
14
  'use strict';
13
15
 
14
16
  /*::
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
 
3
- const { Worker: JestWorker } = require("jest-worker");
4
- const { Logger } = require("metro-core");
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = void 0;
7
+ var _jestWorker = require("jest-worker");
8
+ var _metroCore = require("metro-core");
5
9
  class WorkerFarm {
6
10
  constructor(config, transformerConfig) {
7
11
  this._config = config;
@@ -11,7 +15,7 @@ class WorkerFarm {
11
15
  const worker = this._makeFarm(
12
16
  absoluteWorkerPath,
13
17
  ["transform"],
14
- this._config.maxWorkers
18
+ this._config.maxWorkers,
15
19
  );
16
20
  worker.getStdout().on("data", (chunk) => {
17
21
  this._config.reporter.update({
@@ -42,10 +46,10 @@ class WorkerFarm {
42
46
  options,
43
47
  this._config.projectRoot,
44
48
  this._transformerConfig,
45
- fileBuffer
49
+ fileBuffer,
46
50
  );
47
- Logger.log(data.transformFileStartLogEntry);
48
- Logger.log(data.transformFileEndLogEntry);
51
+ _metroCore.Logger.log(data.transformFileStartLogEntry);
52
+ _metroCore.Logger.log(data.transformFileEndLogEntry);
49
53
  return {
50
54
  result: data.result,
51
55
  sha1: data.sha1,
@@ -63,7 +67,7 @@ class WorkerFarm {
63
67
  ...process.env,
64
68
  FORCE_COLOR: 1,
65
69
  };
66
- return new JestWorker(absoluteWorkerPath, {
70
+ return new _jestWorker.Worker(absoluteWorkerPath, {
67
71
  computeWorkerKey: this._config.stickyWorkers
68
72
  ? this._computeWorkerKey
69
73
  : undefined,
@@ -91,9 +95,7 @@ class WorkerFarm {
91
95
  }
92
96
  _formatBabelError(err, filename) {
93
97
  const error = new TransformError(
94
- `${err.type || "Error"}${
95
- err.message.includes(filename) ? "" : " in " + filename
96
- }: ${err.message}`
98
+ `${err.type || "Error"}${err.message.includes(filename) ? "" : " in " + filename}: ${err.message}`,
97
99
  );
98
100
  return Object.assign(error, {
99
101
  stack: err.stack,
@@ -104,6 +106,7 @@ class WorkerFarm {
104
106
  });
105
107
  }
106
108
  }
109
+ exports.default = WorkerFarm;
107
110
  class TransformError extends SyntaxError {
108
111
  type = "TransformError";
109
112
  constructor(message) {
@@ -111,4 +114,3 @@ class TransformError extends SyntaxError {
111
114
  Error.captureStackTrace && Error.captureStackTrace(this, TransformError);
112
115
  }
113
116
  }
114
- module.exports = WorkerFarm;
@@ -9,15 +9,13 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
12
  import type {TransformResult} from '../DeltaBundler';
15
13
  import type {TransformerConfig, TransformOptions, Worker} from './Worker';
16
14
  import type {ConfigT} from 'metro-config';
17
15
  import type {Readable} from 'stream';
18
16
 
19
- const {Worker: JestWorker} = require('jest-worker');
20
- const {Logger} = require('metro-core');
17
+ import {Worker as JestWorker} from 'jest-worker';
18
+ import {Logger} from 'metro-core';
21
19
 
22
20
  type WorkerInterface = {
23
21
  getStdout(): Readable,
@@ -31,7 +29,7 @@ type TransformerResult = $ReadOnly<{
31
29
  sha1: string,
32
30
  }>;
33
31
 
34
- class WorkerFarm {
32
+ export default class WorkerFarm {
35
33
  _config: ConfigT;
36
34
  _transformerConfig: TransformerConfig;
37
35
  _worker: WorkerInterface | Worker;
@@ -63,6 +61,7 @@ class WorkerFarm {
63
61
 
64
62
  this._worker = worker;
65
63
  } else {
64
+ // eslint-disable-next-line import/no-commonjs
66
65
  this._worker = (require('./Worker'): Worker);
67
66
  }
68
67
  }
@@ -117,7 +116,7 @@ class WorkerFarm {
117
116
  return new JestWorker(absoluteWorkerPath, {
118
117
  computeWorkerKey: this._config.stickyWorkers
119
118
  ? // $FlowFixMe[method-unbinding] added when improving typing for this parameters
120
- // $FlowFixMe[incompatible-call]
119
+ // $FlowFixMe[incompatible-type]
121
120
  this._computeWorkerKey
122
121
  : undefined,
123
122
  exposedMethods,
@@ -161,7 +160,8 @@ class WorkerFarm {
161
160
  }: ${err.message}`,
162
161
  );
163
162
 
164
- // $FlowExpectedError: TODO(t67543470): Change this to properly extend the error.
163
+ // $FlowFixMe[prop-missing]
164
+ // $FlowExpectedError[unsafe-object-assign] : TODO(t67543470): Change this to properly extend the error.
165
165
  return Object.assign(error, {
166
166
  stack: err.stack,
167
167
  snippet: err.codeFrame,
@@ -180,5 +180,3 @@ class TransformError extends SyntaxError {
180
180
  Error.captureStackTrace && Error.captureStackTrace(this, TransformError);
181
181
  }
182
182
  }
183
-
184
- module.exports = WorkerFarm;
@@ -8,11 +8,7 @@ var _contextModule = require("../lib/contextModule");
8
8
  var _isResolvedDependency = require("../lib/isResolvedDependency");
9
9
  var _path = _interopRequireDefault(require("path"));
10
10
  function _interopRequireDefault(e) {
11
- return e && e.__esModule
12
- ? e
13
- : {
14
- default: e,
15
- };
11
+ return e && e.__esModule ? e : { default: e };
16
12
  }
17
13
  function resolveDependencies(parentPath, dependencies, resolve) {
18
14
  const maybeResolvedDeps = new Map();
@@ -25,7 +21,7 @@ function resolveDependencies(parentPath, dependencies, resolve) {
25
21
  const from = _path.default.join(parentPath, "..", dep.name);
26
22
  const absolutePath = (0, _contextModule.deriveAbsolutePathFromContext)(
27
23
  from,
28
- contextParams
24
+ contextParams,
29
25
  );
30
26
  const resolvedContext = {
31
27
  from,
@@ -33,7 +29,7 @@ function resolveDependencies(parentPath, dependencies, resolve) {
33
29
  recursive: contextParams.recursive,
34
30
  filter: new RegExp(
35
31
  contextParams.filter.pattern,
36
- contextParams.filter.flags
32
+ contextParams.filter.flags,
37
33
  ),
38
34
  };
39
35
  resolvedContexts.set(key, resolvedContext);
@@ -58,7 +54,7 @@ function resolveDependencies(parentPath, dependencies, resolve) {
58
54
  }
59
55
  if (maybeResolvedDeps.has(key)) {
60
56
  throw new Error(
61
- `resolveDependencies: Found duplicate dependency key '${key}' in ${parentPath}`
57
+ `resolveDependencies: Found duplicate dependency key '${key}' in ${parentPath}`,
62
58
  );
63
59
  }
64
60
  maybeResolvedDeps.set(key, maybeResolvedDep);
@@ -71,7 +67,7 @@ function resolveDependencies(parentPath, dependencies, resolve) {
71
67
  async function buildSubgraph(
72
68
  entryPaths,
73
69
  resolvedContexts,
74
- { resolve, transform, shouldTraverse }
70
+ { resolve, transform, shouldTraverse },
75
71
  ) {
76
72
  const moduleData = new Map();
77
73
  const errors = new Map();
@@ -85,7 +81,7 @@ async function buildSubgraph(
85
81
  const resolutionResult = resolveDependencies(
86
82
  absolutePath,
87
83
  transformResult.dependencies,
88
- resolve
84
+ resolve,
89
85
  );
90
86
  moduleData.set(absolutePath, {
91
87
  ...transformResult,
@@ -96,22 +92,22 @@ async function buildSubgraph(
96
92
  .filter(
97
93
  (dependency) =>
98
94
  (0, _isResolvedDependency.isResolvedDependency)(dependency) &&
99
- shouldTraverse(dependency)
95
+ shouldTraverse(dependency),
100
96
  )
101
97
  .map((dependency) =>
102
98
  visit(
103
99
  dependency.absolutePath,
104
- resolutionResult.resolvedContexts.get(dependency.data.data.key)
105
- ).catch((error) => errors.set(dependency.absolutePath, error))
106
- )
100
+ resolutionResult.resolvedContexts.get(dependency.data.data.key),
101
+ ).catch((error) => errors.set(dependency.absolutePath, error)),
102
+ ),
107
103
  );
108
104
  }
109
105
  await Promise.all(
110
106
  [...entryPaths].map((absolutePath) =>
111
107
  visit(absolutePath, resolvedContexts.get(absolutePath)).catch((error) =>
112
- errors.set(absolutePath, error)
113
- )
114
- )
108
+ errors.set(absolutePath, error),
109
+ ),
110
+ ),
115
111
  );
116
112
  return {
117
113
  moduleData,
@@ -16,7 +16,7 @@ import type {
16
16
  ResolveFn,
17
17
  TransformFn,
18
18
  TransformResultDependency,
19
- } from './types.flow';
19
+ } from './types';
20
20
 
21
21
  import {deriveAbsolutePathFromContext} from '../lib/contextModule';
22
22
  import {isResolvedDependency} from '../lib/isResolvedDependency';
@@ -1,26 +1,32 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = getTransformCacheKey;
7
+ var _crypto = _interopRequireDefault(require("crypto"));
8
+ var _metroCacheKey = require("metro-cache-key");
9
+ function _interopRequireDefault(e) {
10
+ return e && e.__esModule ? e : { default: e };
11
+ }
3
12
  const VERSION = require("../../package.json").version;
4
- const crypto = require("crypto");
5
- const { getCacheKey } = require("metro-cache-key");
6
13
  function getTransformCacheKey(opts) {
7
14
  const { transformerPath, transformerConfig } = opts.transformerConfig;
8
15
  const Transformer = require.call(null, transformerPath);
9
16
  const transformerKey = Transformer.getCacheKey
10
17
  ? Transformer.getCacheKey(transformerConfig)
11
18
  : "";
12
- return crypto
19
+ return _crypto.default
13
20
  .createHash("sha1")
14
21
  .update(
15
22
  [
16
23
  "metro-cache",
17
24
  VERSION,
18
25
  opts.cacheVersion,
19
- getCacheKey([require.resolve(transformerPath)]),
26
+ (0, _metroCacheKey.getCacheKey)([require.resolve(transformerPath)]),
20
27
  transformerKey,
21
28
  transformerConfig.globalPrefix,
22
- ].join("$")
29
+ ].join("$"),
23
30
  )
24
31
  .digest("hex");
25
32
  }
26
- module.exports = getTransformCacheKey;
@@ -9,20 +9,20 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
12
  import type {TransformerConfig} from './Worker';
15
13
  import type {JsTransformerConfig} from 'metro-transform-worker';
16
14
 
15
+ import crypto from 'crypto';
16
+ import {getCacheKey} from 'metro-cache-key';
17
+
18
+ // eslint-disable-next-line import/no-commonjs
17
19
  const VERSION = require('../../package.json').version;
18
- const crypto = require('crypto');
19
- const {getCacheKey} = require('metro-cache-key');
20
20
 
21
21
  type CacheKeyProvider = {
22
22
  getCacheKey?: JsTransformerConfig => string,
23
23
  };
24
24
 
25
- function getTransformCacheKey(opts: {
25
+ export default function getTransformCacheKey(opts: {
26
26
  +cacheVersion: string,
27
27
  +projectRoot: string,
28
28
  +transformerConfig: TransformerConfig,
@@ -49,5 +49,3 @@ function getTransformCacheKey(opts: {
49
49
  )
50
50
  .digest('hex');
51
51
  }
52
-
53
- module.exports = getTransformCacheKey;
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = mergeDeltas;
3
7
  function mergeDeltas(delta1, delta2) {
4
8
  const added1 = new Map(delta1.added);
5
9
  const modified1 = new Map(delta1.modified);
@@ -50,4 +54,3 @@ function mergeDeltas(delta1, delta2) {
50
54
  deleted: [...deleted],
51
55
  };
52
56
  }
53
- module.exports = mergeDeltas;
@@ -9,11 +9,12 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
12
+ import type {DeltaBundle} from 'metro-runtime/src/modules/types';
13
13
 
14
- import type {DeltaBundle} from 'metro-runtime/src/modules/types.flow';
15
-
16
- function mergeDeltas(delta1: DeltaBundle, delta2: DeltaBundle): DeltaBundle {
14
+ export default function mergeDeltas(
15
+ delta1: DeltaBundle,
16
+ delta2: DeltaBundle,
17
+ ): DeltaBundle {
17
18
  const added1 = new Map(delta1.added);
18
19
  const modified1 = new Map(delta1.modified);
19
20
  const deleted1 = new Set(delta1.deleted);
@@ -70,5 +71,3 @@ function mergeDeltas(delta1: DeltaBundle, delta2: DeltaBundle): DeltaBundle {
70
71
  deleted: [...deleted],
71
72
  };
72
73
  }
73
-
74
- module.exports = mergeDeltas;
@@ -148,7 +148,10 @@ export interface SerializerOptions<T = MixedOutput> {
148
148
  readonly asyncRequireModulePath: string;
149
149
  readonly createModuleId: (filePath: string) => number;
150
150
  readonly dev: boolean;
151
- readonly getRunModuleStatement: (moduleId: string | number) => string;
151
+ readonly getRunModuleStatement: (
152
+ moduleId: number | string,
153
+ globalPrefix: string,
154
+ ) => string;
152
155
  readonly includeAsyncPaths: boolean;
153
156
  readonly inlineSourceMap?: boolean;
154
157
  readonly modulesOnly: boolean;
@@ -2,9 +2,5 @@
2
2
 
3
3
  var _CountingSet = _interopRequireDefault(require("../lib/CountingSet"));
4
4
  function _interopRequireDefault(e) {
5
- return e && e.__esModule
6
- ? e
7
- : {
8
- default: e,
9
- };
5
+ return e && e.__esModule ? e : { default: e };
10
6
  }
@@ -9,8 +9,6 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
12
  import type {RequireContext} from '../lib/contextModule';
15
13
  import type {RequireContextParams} from '../ModuleGraph/worker/collectDependencies';
16
14
  import type {Graph} from './Graph';
@@ -170,7 +168,11 @@ export type SerializerOptions = $ReadOnly<{
170
168
  asyncRequireModulePath: string,
171
169
  createModuleId: string => number,
172
170
  dev: boolean,
173
- getRunModuleStatement: (number | string) => string,
171
+ getRunModuleStatement: (
172
+ moduleId: number | string,
173
+ globalPrefix: string,
174
+ ) => string,
175
+ globalPrefix: string,
174
176
  includeAsyncPaths: boolean,
175
177
  inlineSourceMap: ?boolean,
176
178
  modulesOnly: boolean,
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
 
3
- const DeltaCalculator = require("./DeltaBundler/DeltaCalculator");
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = void 0;
7
+ var _DeltaCalculator = _interopRequireDefault(
8
+ require("./DeltaBundler/DeltaCalculator"),
9
+ );
10
+ function _interopRequireDefault(e) {
11
+ return e && e.__esModule ? e : { default: e };
12
+ }
4
13
  class DeltaBundler {
5
14
  _deltaCalculators = new Map();
6
15
  constructor(changeEventSource) {
@@ -11,10 +20,10 @@ class DeltaBundler {
11
20
  this._deltaCalculators = new Map();
12
21
  }
13
22
  async getDependencies(entryPoints, options) {
14
- const deltaCalculator = new DeltaCalculator(
23
+ const deltaCalculator = new _DeltaCalculator.default(
15
24
  new Set(entryPoints),
16
25
  this._changeEventSource,
17
- options
26
+ options,
18
27
  );
19
28
  await deltaCalculator.getDelta({
20
29
  reset: true,
@@ -25,10 +34,10 @@ class DeltaBundler {
25
34
  return graph.dependencies;
26
35
  }
27
36
  async buildGraph(entryPoints, options) {
28
- const deltaCalculator = new DeltaCalculator(
37
+ const deltaCalculator = new _DeltaCalculator.default(
29
38
  new Set(entryPoints),
30
39
  this._changeEventSource,
31
- options
40
+ options,
32
41
  );
33
42
  await deltaCalculator.getDelta({
34
43
  reset: true,
@@ -67,4 +76,4 @@ class DeltaBundler {
67
76
  this._deltaCalculators.delete(graph);
68
77
  }
69
78
  }
70
- module.exports = DeltaBundler;
79
+ exports.default = DeltaBundler;