metro 0.65.2 → 0.67.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.
Files changed (255) hide show
  1. package/package.json +27 -27
  2. package/src/Assets.js +9 -9
  3. package/src/Assets.js.flow +5 -7
  4. package/src/Bundler/util.js +17 -15
  5. package/src/Bundler/util.js.flow +12 -10
  6. package/src/Bundler.js +22 -9
  7. package/src/Bundler.js.flow +20 -7
  8. package/src/DeltaBundler/DeltaCalculator.js +17 -15
  9. package/src/DeltaBundler/DeltaCalculator.js.flow +9 -7
  10. package/src/DeltaBundler/Serializers/baseBytecodeBundle.js +13 -13
  11. package/src/DeltaBundler/Serializers/baseBytecodeBundle.js.flow +6 -7
  12. package/src/DeltaBundler/Serializers/baseJSBundle.js +4 -4
  13. package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +4 -4
  14. package/src/DeltaBundler/Serializers/getAllFiles.js +1 -1
  15. package/src/DeltaBundler/Serializers/getAllFiles.js.flow +3 -3
  16. package/src/DeltaBundler/Serializers/getAssets.js +3 -3
  17. package/src/DeltaBundler/Serializers/getAssets.js.flow +4 -5
  18. package/src/DeltaBundler/Serializers/getExplodedSourceMap.js +4 -4
  19. package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +4 -4
  20. package/src/DeltaBundler/Serializers/getRamBundleInfo.js +20 -20
  21. package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +9 -10
  22. package/src/DeltaBundler/Serializers/helpers/bytecode.js +11 -11
  23. package/src/DeltaBundler/Serializers/helpers/bytecode.js.flow +5 -6
  24. package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +1 -1
  25. package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js.flow +1 -1
  26. package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +2 -2
  27. package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js.flow +4 -4
  28. package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +1 -1
  29. package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js.flow +1 -1
  30. package/src/DeltaBundler/Serializers/helpers/js.js +18 -8
  31. package/src/DeltaBundler/Serializers/helpers/js.js.flow +19 -10
  32. package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +4 -4
  33. package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js.flow +3 -3
  34. package/src/DeltaBundler/Serializers/helpers/processModules.js +4 -4
  35. package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -3
  36. package/src/DeltaBundler/Serializers/hmrJSBundle.js +9 -9
  37. package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +9 -8
  38. package/src/DeltaBundler/Serializers/sourceMapGenerator.js +6 -6
  39. package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +3 -4
  40. package/src/DeltaBundler/Serializers/sourceMapObject.js +5 -5
  41. package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +4 -4
  42. package/src/DeltaBundler/Serializers/sourceMapString.js +2 -2
  43. package/src/DeltaBundler/Serializers/sourceMapString.js.flow +3 -3
  44. package/src/DeltaBundler/Transformer.js +16 -14
  45. package/src/DeltaBundler/Transformer.js.flow +15 -15
  46. package/src/DeltaBundler/Worker.js +8 -11
  47. package/src/DeltaBundler/Worker.js.flow +8 -11
  48. package/src/DeltaBundler/WorkerFarm.js +15 -18
  49. package/src/DeltaBundler/WorkerFarm.js.flow +9 -11
  50. package/src/DeltaBundler/__fixtures__/hasteImpl.js +2 -2
  51. package/src/DeltaBundler/computeDelta.js +2 -2
  52. package/src/DeltaBundler/computeDelta.js.flow +2 -2
  53. package/src/DeltaBundler/getTransformCacheKey.js +4 -4
  54. package/src/DeltaBundler/getTransformCacheKey.js.flow +5 -6
  55. package/src/DeltaBundler/mergeDeltas.js +2 -2
  56. package/src/DeltaBundler/mergeDeltas.js.flow +1 -1
  57. package/src/DeltaBundler/traverseDependencies.js +22 -22
  58. package/src/DeltaBundler/traverseDependencies.js.flow +3 -3
  59. package/src/DeltaBundler/types.flow.js +1 -1
  60. package/src/DeltaBundler/types.flow.js.flow +15 -1
  61. package/src/DeltaBundler.js +5 -5
  62. package/src/DeltaBundler.js.flow +4 -4
  63. package/src/HmrServer.js +73 -55
  64. package/src/HmrServer.js.flow +42 -37
  65. package/src/IncrementalBundler/GraphNotFoundError.js +1 -1
  66. package/src/IncrementalBundler/GraphNotFoundError.js.flow +1 -1
  67. package/src/IncrementalBundler/ResourceNotFoundError.js +1 -1
  68. package/src/IncrementalBundler/ResourceNotFoundError.js.flow +1 -1
  69. package/src/IncrementalBundler/RevisionNotFoundError.js +1 -1
  70. package/src/IncrementalBundler/RevisionNotFoundError.js.flow +1 -1
  71. package/src/IncrementalBundler.js +46 -32
  72. package/src/IncrementalBundler.js.flow +32 -24
  73. package/src/ModuleGraph/module.js +3 -3
  74. package/src/ModuleGraph/module.js.flow +1 -1
  75. package/src/ModuleGraph/node-haste/HasteFS.js +5 -3
  76. package/src/ModuleGraph/node-haste/HasteFS.js.flow +3 -1
  77. package/src/ModuleGraph/node-haste/Module.js +1 -1
  78. package/src/ModuleGraph/node-haste/Module.js.flow +1 -1
  79. package/src/ModuleGraph/node-haste/ModuleCache.js +1 -1
  80. package/src/ModuleGraph/node-haste/ModuleCache.js.flow +3 -3
  81. package/src/ModuleGraph/node-haste/Package.js +3 -3
  82. package/src/ModuleGraph/node-haste/Package.js.flow +3 -3
  83. package/src/ModuleGraph/node-haste/node-haste.flow.js +1 -1
  84. package/src/ModuleGraph/node-haste/node-haste.flow.js.flow +1 -1
  85. package/src/ModuleGraph/node-haste/node-haste.js +41 -31
  86. package/src/ModuleGraph/node-haste/node-haste.js.flow +28 -22
  87. package/src/ModuleGraph/output/indexed-ram-bundle.js +17 -17
  88. package/src/ModuleGraph/output/indexed-ram-bundle.js.flow +41 -9
  89. package/src/ModuleGraph/output/multiple-files-ram-bundle.js +18 -18
  90. package/src/ModuleGraph/output/multiple-files-ram-bundle.js.flow +21 -9
  91. package/src/ModuleGraph/output/plain-bundle.js +6 -6
  92. package/src/ModuleGraph/output/plain-bundle.js.flow +7 -7
  93. package/src/ModuleGraph/output/reverse-dependency-map-references.js +3 -3
  94. package/src/ModuleGraph/output/reverse-dependency-map-references.js.flow +4 -8
  95. package/src/ModuleGraph/output/util.js +61 -40
  96. package/src/ModuleGraph/output/util.js.flow +51 -28
  97. package/src/ModuleGraph/silent-console.js +2 -2
  98. package/src/ModuleGraph/silent-console.js.flow +1 -1
  99. package/src/ModuleGraph/test-helpers.js +7 -7
  100. package/src/ModuleGraph/types.flow.js +1 -1
  101. package/src/ModuleGraph/types.flow.js.flow +47 -31
  102. package/src/ModuleGraph/worker/JsFileWrapping.js +16 -16
  103. package/src/ModuleGraph/worker/JsFileWrapping.js.flow +3 -2
  104. package/src/ModuleGraph/worker/Platforms.js +2 -2
  105. package/src/ModuleGraph/worker/Platforms.js.flow +1 -1
  106. package/src/ModuleGraph/worker/collectDependencies.js +24 -25
  107. package/src/ModuleGraph/worker/collectDependencies.js.flow +16 -18
  108. package/src/ModuleGraph/worker/generate.js +2 -2
  109. package/src/ModuleGraph/worker/generate.js.flow +3 -3
  110. package/src/ModuleGraph/worker/generateImportNames.js +5 -5
  111. package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -5
  112. package/src/ModuleGraph/worker/mergeSourceMaps.js +8 -7
  113. package/src/ModuleGraph/worker/mergeSourceMaps.js.flow +3 -3
  114. package/src/Server/MultipartResponse.js +4 -8
  115. package/src/Server/symbolicate.js +8 -8
  116. package/src/Server/symbolicate.js.flow +17 -5
  117. package/src/Server.js +204 -150
  118. package/src/Server.js.flow +131 -87
  119. package/src/cli-utils.js +4 -4
  120. package/src/cli-utils.js.flow +15 -13
  121. package/src/cli.js +4 -4
  122. package/src/cli.js.flow +2 -4
  123. package/src/commands/build.js +23 -24
  124. package/src/commands/build.js.flow +6 -9
  125. package/src/commands/dependencies.js +25 -19
  126. package/src/commands/serve.js +19 -19
  127. package/src/commands/serve.js.flow +7 -9
  128. package/src/index.js +117 -50
  129. package/src/index.js.flow +108 -40
  130. package/src/integration_tests/basic_bundle/AssetRegistry.js +2 -2
  131. package/src/integration_tests/basic_bundle/AssetRegistry.js.flow +1 -1
  132. package/src/integration_tests/basic_bundle/Bar.js +2 -2
  133. package/src/integration_tests/basic_bundle/Bar.js.flow +1 -1
  134. package/src/integration_tests/basic_bundle/ErrorBundle.js +2 -2
  135. package/src/integration_tests/basic_bundle/ErrorBundle.js.flow +1 -1
  136. package/src/integration_tests/basic_bundle/Foo.js +2 -2
  137. package/src/integration_tests/basic_bundle/Foo.js.flow +1 -1
  138. package/src/integration_tests/basic_bundle/TestBundle.js +2 -2
  139. package/src/integration_tests/basic_bundle/TestBundle.js.flow +1 -1
  140. package/src/integration_tests/basic_bundle/TestPolyfill.js +1 -1
  141. package/src/integration_tests/basic_bundle/TestPolyfill.js.flow +1 -1
  142. package/src/integration_tests/basic_bundle/TypeScript.ts +1 -1
  143. package/src/integration_tests/basic_bundle/import-export/export-1.js +2 -2
  144. package/src/integration_tests/basic_bundle/import-export/export-1.js.flow +1 -1
  145. package/src/integration_tests/basic_bundle/import-export/export-2.js +2 -2
  146. package/src/integration_tests/basic_bundle/import-export/export-2.js.flow +1 -1
  147. package/src/integration_tests/basic_bundle/import-export/export-3.js +2 -2
  148. package/src/integration_tests/basic_bundle/import-export/export-3.js.flow +1 -1
  149. package/src/integration_tests/basic_bundle/import-export/export-4.js +2 -2
  150. package/src/integration_tests/basic_bundle/import-export/export-4.js.flow +1 -1
  151. package/src/integration_tests/basic_bundle/import-export/export-5.js +2 -2
  152. package/src/integration_tests/basic_bundle/import-export/export-5.js.flow +1 -1
  153. package/src/integration_tests/basic_bundle/import-export/export-6.js +2 -2
  154. package/src/integration_tests/basic_bundle/import-export/export-6.js.flow +1 -1
  155. package/src/integration_tests/basic_bundle/import-export/export-null.js +2 -2
  156. package/src/integration_tests/basic_bundle/import-export/export-null.js.flow +1 -1
  157. package/src/integration_tests/basic_bundle/import-export/export-primitive-default.js +2 -2
  158. package/src/integration_tests/basic_bundle/import-export/export-primitive-default.js.flow +1 -1
  159. package/src/integration_tests/basic_bundle/import-export/index.js +17 -17
  160. package/src/integration_tests/basic_bundle/import-export/index.js.flow +1 -1
  161. package/src/integration_tests/basic_bundle/polyfill.js +1 -1
  162. package/src/integration_tests/execBundle.js +2 -2
  163. package/src/integration_tests/execBundle.js.flow +1 -1
  164. package/src/integration_tests/metro.config.js +8 -8
  165. package/src/lib/BatchProcessor.js +10 -6
  166. package/src/lib/BatchProcessor.js.flow +6 -1
  167. package/src/lib/JsonReporter.js +3 -2
  168. package/src/lib/JsonReporter.js.flow +2 -1
  169. package/src/lib/RamBundleParser.js +1 -1
  170. package/src/lib/RamBundleParser.js.flow +1 -1
  171. package/src/lib/TerminalReporter.js +15 -15
  172. package/src/lib/TerminalReporter.js.flow +15 -16
  173. package/src/lib/bundleToBytecode.js +6 -7
  174. package/src/lib/bundleToBytecode.js.flow +8 -7
  175. package/src/lib/bundleToString.js +3 -3
  176. package/src/lib/bundleToString.js.flow +5 -4
  177. package/src/lib/countLines.js +3 -7
  178. package/src/lib/countLines.js.flow +4 -7
  179. package/src/lib/createModuleIdFactory.js +2 -2
  180. package/src/lib/createModuleIdFactory.js.flow +1 -1
  181. package/src/lib/{attachWebsocketServer.js → createWebsocketServer.js} +18 -17
  182. package/src/lib/{attachWebsocketServer.js.flow → createWebsocketServer.js.flow} +13 -23
  183. package/src/lib/debounceAsyncQueue.js +2 -2
  184. package/src/lib/debounceAsyncQueue.js.flow +1 -1
  185. package/src/lib/formatBundlingError.js +21 -21
  186. package/src/lib/formatBundlingError.js.flow +18 -20
  187. package/src/lib/getAppendScripts.js +26 -27
  188. package/src/lib/getAppendScripts.js.flow +7 -8
  189. package/src/lib/getGraphId.js +3 -3
  190. package/src/lib/getGraphId.js.flow +3 -3
  191. package/src/lib/getMaxWorkers.js +2 -2
  192. package/src/lib/getMaxWorkers.js.flow +1 -1
  193. package/src/lib/getPreludeCode.js +2 -2
  194. package/src/lib/getPreludeCode.js.flow +1 -1
  195. package/src/lib/getPrependedScripts.js +16 -15
  196. package/src/lib/getPrependedScripts.js.flow +8 -8
  197. package/src/lib/logToConsole.js +12 -5
  198. package/src/lib/logToConsole.js.flow +19 -6
  199. package/src/lib/parseCustomTransformOptions.js +2 -2
  200. package/src/lib/parseCustomTransformOptions.js.flow +3 -3
  201. package/src/lib/parseOptionsFromUrl.js +7 -7
  202. package/src/lib/parseOptionsFromUrl.js.flow +29 -9
  203. package/src/lib/relativizeSourceMap.js +1 -1
  204. package/src/lib/relativizeSourceMap.js.flow +3 -3
  205. package/src/lib/reporting.js +5 -5
  206. package/src/lib/reporting.js.flow +18 -4
  207. package/src/lib/splitBundleOptions.js +5 -5
  208. package/src/lib/splitBundleOptions.js.flow +1 -1
  209. package/src/lib/transformHelpers.js +11 -10
  210. package/src/lib/transformHelpers.js.flow +6 -13
  211. package/src/node-haste/DependencyGraph/ModuleResolution.js +51 -30
  212. package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +49 -48
  213. package/src/node-haste/DependencyGraph/createHasteMap.js +99 -0
  214. package/src/node-haste/DependencyGraph/createHasteMap.js.flow +88 -0
  215. package/src/node-haste/DependencyGraph/{assets/empty-module.js → types.js} +2 -2
  216. package/src/node-haste/DependencyGraph/types.js.flow +88 -0
  217. package/src/node-haste/DependencyGraph.js +51 -118
  218. package/src/node-haste/DependencyGraph.js.flow +38 -111
  219. package/src/node-haste/Module.js +1 -1
  220. package/src/node-haste/Module.js.flow +3 -3
  221. package/src/node-haste/ModuleCache.js +54 -13
  222. package/src/node-haste/ModuleCache.js.flow +53 -12
  223. package/src/node-haste/Package.js +2 -2
  224. package/src/node-haste/Package.js.flow +1 -1
  225. package/src/node-haste/lib/AssetPaths.js +5 -5
  226. package/src/node-haste/lib/AssetPaths.js.flow +7 -6
  227. package/src/node-haste/lib/parsePlatformFilePath.js +4 -4
  228. package/src/node-haste/lib/parsePlatformFilePath.js.flow +2 -2
  229. package/src/shared/output/RamBundle/as-assets.js +14 -15
  230. package/src/shared/output/RamBundle/as-assets.js.flow +9 -11
  231. package/src/shared/output/RamBundle/as-indexed-file.js +14 -15
  232. package/src/shared/output/RamBundle/as-indexed-file.js.flow +8 -12
  233. package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +7 -7
  234. package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +4 -4
  235. package/src/shared/output/RamBundle/magic-number.js +1 -1
  236. package/src/shared/output/RamBundle/magic-number.js.flow +1 -1
  237. package/src/shared/output/RamBundle/util.js +21 -19
  238. package/src/shared/output/RamBundle/util.js.flow +5 -8
  239. package/src/shared/output/RamBundle/write-sourcemap.js +1 -1
  240. package/src/shared/output/RamBundle/write-sourcemap.js.flow +1 -1
  241. package/src/shared/output/RamBundle.js +2 -2
  242. package/src/shared/output/RamBundle.js.flow +4 -5
  243. package/src/shared/output/bundle.js +6 -6
  244. package/src/shared/output/bundle.js.flow +4 -5
  245. package/src/shared/output/meta.js +4 -5
  246. package/src/shared/output/meta.js.flow +2 -4
  247. package/src/shared/output/unbundle.js +1 -1
  248. package/src/shared/output/unbundle.js.flow +1 -1
  249. package/src/shared/output/writeFile.js +1 -1
  250. package/src/shared/output/writeFile.js.flow +1 -1
  251. package/src/shared/types.flow.js +1 -1
  252. package/src/shared/types.flow.js.flow +6 -4
  253. package/src/node-haste/DependencyGraph/assets/empty-module.js.flow +0 -9
  254. package/src/node-haste/types.js +0 -10
  255. package/src/node-haste/types.js.flow +0 -23
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -9,14 +9,14 @@
9
9
  */
10
10
  "use strict";
11
11
 
12
+ const traverse = require("@babel/traverse").default;
13
+
12
14
  const crypto = require("crypto");
13
15
 
14
16
  const fs = require("fs");
15
17
 
16
18
  const path = require("path");
17
19
 
18
- const traverse = require("@babel/traverse").default;
19
-
20
20
  async function transform(
21
21
  filename,
22
22
  transformOptions,
@@ -31,13 +31,10 @@ async function transform(
31
31
  action_phase: "start",
32
32
  file_name: filename,
33
33
  log_entry_label: "Transforming file",
34
- start_timestamp: process.hrtime()
34
+ start_timestamp: process.hrtime(),
35
35
  };
36
36
  const data = fs.readFileSync(path.resolve(projectRoot, filename));
37
- const sha1 = crypto
38
- .createHash("sha1")
39
- .update(data)
40
- .digest("hex");
37
+ const sha1 = crypto.createHash("sha1").update(data).digest("hex");
41
38
  const result = await Transformer.transform(
42
39
  transformerConfig.transformerConfig,
43
40
  projectRoot,
@@ -60,7 +57,7 @@ async function transform(
60
57
  result,
61
58
  sha1,
62
59
  transformFileStartLogEntry,
63
- transformFileEndLogEntry
60
+ transformFileEndLogEntry,
64
61
  };
65
62
  }
66
63
 
@@ -72,10 +69,10 @@ function getEndLogEntry(startLogEntry, filename) {
72
69
  action_phase: "end",
73
70
  file_name: filename,
74
71
  duration_ms,
75
- log_entry_label: "Transforming file"
72
+ log_entry_label: "Transforming file",
76
73
  };
77
74
  }
78
75
 
79
76
  module.exports = {
80
- transform
77
+ transform,
81
78
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,18 +10,18 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const crypto = require('crypto');
14
- const fs = require('fs');
15
- const path = require('path');
16
- const traverse = require('@babel/traverse').default;
17
-
18
13
  import type {TransformResult} from './types.flow';
19
14
  import type {LogEntry} from 'metro-core/src/Logger';
20
15
  import type {
21
- JsTransformOptions,
22
16
  JsTransformerConfig,
17
+ JsTransformOptions,
23
18
  } from 'metro-transform-worker';
24
19
 
20
+ const traverse = require('@babel/traverse').default;
21
+ const crypto = require('crypto');
22
+ const fs = require('fs');
23
+ const path = require('path');
24
+
25
25
  export type {JsTransformOptions as TransformOptions} from 'metro-transform-worker';
26
26
 
27
27
  export type Worker = {|
@@ -72,10 +72,7 @@ async function transform(
72
72
  };
73
73
 
74
74
  const data = fs.readFileSync(path.resolve(projectRoot, filename));
75
- const sha1 = crypto
76
- .createHash('sha1')
77
- .update(data)
78
- .digest('hex');
75
+ const sha1 = crypto.createHash('sha1').update(data).digest('hex');
79
76
 
80
77
  const result = await Transformer.transform(
81
78
  transformerConfig.transformerConfig,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -9,10 +9,10 @@
9
9
  */
10
10
  "use strict";
11
11
 
12
- const { Logger } = require("metro-core");
13
-
14
12
  const JestWorker = require("jest-worker").default;
15
13
 
14
+ const { Logger } = require("metro-core");
15
+
16
16
  class WorkerFarm {
17
17
  constructor(config, transformerConfig) {
18
18
  this._config = config;
@@ -25,16 +25,16 @@ class WorkerFarm {
25
25
  this._config.maxWorkers
26
26
  );
27
27
 
28
- worker.getStdout().on("data", chunk => {
28
+ worker.getStdout().on("data", (chunk) => {
29
29
  this._config.reporter.update({
30
30
  type: "worker_stdout_chunk",
31
- chunk: chunk.toString("utf8")
31
+ chunk: chunk.toString("utf8"),
32
32
  });
33
33
  });
34
- worker.getStderr().on("data", chunk => {
34
+ worker.getStderr().on("data", (chunk) => {
35
35
  this._config.reporter.update({
36
36
  type: "worker_stderr_chunk",
37
- chunk: chunk.toString("utf8")
37
+ chunk: chunk.toString("utf8"),
38
38
  });
39
39
  });
40
40
  this._worker = worker;
@@ -62,7 +62,7 @@ class WorkerFarm {
62
62
  Logger.log(data.transformFileEndLogEntry);
63
63
  return {
64
64
  result: data.result,
65
- sha1: data.sha1
65
+ sha1: data.sha1,
66
66
  };
67
67
  } catch (err) {
68
68
  if (err.loc) {
@@ -77,17 +77,17 @@ class WorkerFarm {
77
77
  const env = {
78
78
  ...process.env,
79
79
  // Force color to print syntax highlighted code frames.
80
- FORCE_COLOR: 1
80
+ FORCE_COLOR: 1,
81
81
  };
82
82
  return new JestWorker(workerPath, {
83
- computeWorkerKey: this._config.stickyWorkers
83
+ computeWorkerKey: this._config.stickyWorkers // $FlowFixMe[method-unbinding] added when improving typing for this parameters
84
84
  ? this._computeWorkerKey
85
85
  : undefined,
86
86
  exposedMethods,
87
87
  forkOptions: {
88
- env
88
+ env,
89
89
  },
90
- numWorkers
90
+ numWorkers,
91
91
  });
92
92
  }
93
93
 
@@ -105,11 +105,8 @@ class WorkerFarm {
105
105
  _formatGenericError(err, filename) {
106
106
  const error = new TransformError(`${filename}: ${err.message}`);
107
107
  return Object.assign(error, {
108
- stack: (err.stack || "")
109
- .split("\n")
110
- .slice(0, -1)
111
- .join("\n"),
112
- lineNumber: 0
108
+ stack: (err.stack || "").split("\n").slice(0, -1).join("\n"),
109
+ lineNumber: 0,
113
110
  });
114
111
  }
115
112
 
@@ -125,7 +122,7 @@ class WorkerFarm {
125
122
  snippet: err.codeFrame,
126
123
  lineNumber: err.loc.line,
127
124
  column: err.loc.column,
128
- filename
125
+ filename,
129
126
  });
130
127
  }
131
128
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,13 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const {Logger} = require('metro-core');
14
- const JestWorker = require('jest-worker').default;
15
-
16
- import type {Readable} from 'stream';
17
13
  import type {TransformResult} from '../DeltaBundler';
18
- import type {TransformOptions, TransformerConfig, Worker} from './Worker';
14
+ import type {TransformerConfig, TransformOptions, Worker} from './Worker';
19
15
  import type {ConfigT} from 'metro-config/src/configTypes.flow';
16
+ import type {Readable} from 'stream';
17
+
18
+ const JestWorker = require('jest-worker').default;
19
+ const {Logger} = require('metro-core');
20
20
 
21
21
  type WorkerInterface = {|
22
22
  getStdout(): Readable,
@@ -116,7 +116,8 @@ class WorkerFarm {
116
116
 
117
117
  return new JestWorker(workerPath, {
118
118
  computeWorkerKey: this._config.stickyWorkers
119
- ? this._computeWorkerKey
119
+ ? // $FlowFixMe[method-unbinding] added when improving typing for this parameters
120
+ this._computeWorkerKey
120
121
  : undefined,
121
122
  exposedMethods,
122
123
  forkOptions: {env},
@@ -139,10 +140,7 @@ class WorkerFarm {
139
140
  const error = new TransformError(`${filename}: ${err.message}`);
140
141
 
141
142
  return Object.assign(error, {
142
- stack: (err.stack || '')
143
- .split('\n')
144
- .slice(0, -1)
145
- .join('\n'),
143
+ stack: (err.stack || '').split('\n').slice(0, -1).join('\n'),
146
144
  lineNumber: 0,
147
145
  });
148
146
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -25,5 +25,5 @@ module.exports = {
25
25
  }
26
26
 
27
27
  return matches[1];
28
- }
28
+ },
29
29
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -35,7 +35,7 @@ function computeDelta(entries1, entries2) {
35
35
  return {
36
36
  added: [...added.entries()],
37
37
  modified: [...modified.entries()],
38
- deleted: [...deleted]
38
+ deleted: [...deleted],
39
39
  };
40
40
  }
41
41
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -11,8 +11,8 @@
11
11
  'use strict';
12
12
 
13
13
  import type {
14
- ModuleMap,
15
14
  DeltaBundle,
15
+ ModuleMap,
16
16
  } from 'metro-runtime/src/modules/types.flow';
17
17
 
18
18
  function computeDelta(entries1: ModuleMap, entries2: ModuleMap): DeltaBundle {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -9,12 +9,12 @@
9
9
  */
10
10
  "use strict";
11
11
 
12
+ const VERSION = require("../../package.json").version;
13
+
12
14
  const crypto = require("crypto");
13
15
 
14
16
  const getCacheKey = require("metro-cache-key");
15
17
 
16
- const VERSION = require("../../package.json").version;
17
-
18
18
  function getTransformCacheKey(opts) {
19
19
  const { transformerPath, transformerConfig } = opts.transformerConfig; // eslint-disable-next-line no-useless-call
20
20
 
@@ -32,7 +32,7 @@ function getTransformCacheKey(opts) {
32
32
  opts.cacheVersion,
33
33
  getCacheKey([require.resolve(transformerPath)]),
34
34
  transformerKey,
35
- transformerConfig.globalPrefix
35
+ transformerConfig.globalPrefix,
36
36
  ].join("$")
37
37
  )
38
38
  .digest("hex");
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,14 +10,13 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const crypto = require('crypto');
14
- const getCacheKey = require('metro-cache-key');
15
-
16
- const VERSION = require('../../package.json').version;
17
-
18
13
  import type {TransformerConfig} from './Worker';
19
14
  import type {JsTransformerConfig} from 'metro-transform-worker';
20
15
 
16
+ const VERSION = require('../../package.json').version;
17
+ const crypto = require('crypto');
18
+ const getCacheKey = require('metro-cache-key');
19
+
21
20
  type CacheKeyProvider = {
22
21
  getCacheKey?: JsTransformerConfig => string,
23
22
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -63,7 +63,7 @@ function mergeDeltas(delta1, delta2) {
63
63
  return {
64
64
  added: [...added.entries()],
65
65
  modified: [...modified.entries()],
66
- deleted: [...deleted]
66
+ deleted: [...deleted],
67
67
  };
68
68
  }
69
69
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -16,7 +16,7 @@ function getInternalOptions({
16
16
  resolve,
17
17
  onProgress,
18
18
  experimentalImportBundleSupport,
19
- shallow
19
+ shallow,
20
20
  }) {
21
21
  let numProcessed = 0;
22
22
  let total = 0;
@@ -26,7 +26,7 @@ function getInternalOptions({
26
26
  resolve,
27
27
  onDependencyAdd: () => onProgress && onProgress(numProcessed, ++total),
28
28
  onDependencyAdded: () => onProgress && onProgress(++numProcessed, total),
29
- shallow
29
+ shallow,
30
30
  };
31
31
  }
32
32
  /**
@@ -46,7 +46,7 @@ async function traverseDependencies(paths, graph, options) {
46
46
  added: new Set(),
47
47
  modified: new Set(),
48
48
  deleted: new Set(),
49
- inverseDependencies: new Map()
49
+ inverseDependencies: new Map(),
50
50
  };
51
51
  const internalOptions = getInternalOptions(options);
52
52
 
@@ -99,7 +99,7 @@ async function traverseDependencies(paths, graph, options) {
99
99
  return {
100
100
  added,
101
101
  modified,
102
- deleted
102
+ deleted,
103
103
  };
104
104
  }
105
105
 
@@ -108,21 +108,21 @@ async function initialTraverseDependencies(graph, options) {
108
108
  added: new Set(),
109
109
  modified: new Set(),
110
110
  deleted: new Set(),
111
- inverseDependencies: new Map()
111
+ inverseDependencies: new Map(),
112
112
  };
113
113
  const internalOptions = getInternalOptions(options);
114
114
  await Promise.all(
115
- graph.entryPoints.map(path =>
115
+ graph.entryPoints.map((path) =>
116
116
  traverseDependenciesForSingleFile(path, graph, delta, internalOptions)
117
117
  )
118
118
  );
119
119
  reorderGraph(graph, {
120
- shallow: options.shallow
120
+ shallow: options.shallow,
121
121
  });
122
122
  return {
123
123
  added: graph.dependencies,
124
124
  modified: new Map(),
125
- deleted: new Set()
125
+ deleted: new Set(),
126
126
  };
127
127
  }
128
128
 
@@ -144,7 +144,7 @@ async function processModule(path, graph, delta, options) {
144
144
  );
145
145
  const previousModule = graph.dependencies.get(path) || {
146
146
  inverseDependencies: delta.inverseDependencies.get(path) || new Set(),
147
- path
147
+ path,
148
148
  };
149
149
  const previousDependencies = previousModule.dependencies || new Map(); // Update the module information.
150
150
 
@@ -152,7 +152,7 @@ async function processModule(path, graph, delta, options) {
152
152
  ...previousModule,
153
153
  dependencies: new Map(),
154
154
  getSource: result.getSource,
155
- output: result.output
155
+ output: result.output,
156
156
  };
157
157
  graph.dependencies.set(module.path, module);
158
158
 
@@ -255,7 +255,7 @@ function getAllTopLevelInverseDependencies(
255
255
  }
256
256
 
257
257
  return Array.from(inverseDependencies)
258
- .filter(inverseDep => graph.dependencies.has(inverseDep))
258
+ .filter((inverseDep) => graph.dependencies.has(inverseDep))
259
259
  .reduce((acc, inverseDep) => {
260
260
  const mod = graph.dependencies.get(inverseDep);
261
261
 
@@ -268,7 +268,7 @@ function getAllTopLevelInverseDependencies(
268
268
  graph,
269
269
  inverseDep,
270
270
  visited
271
- ).forEach(x => {
271
+ ).forEach((x) => {
272
272
  acc.add(x);
273
273
  });
274
274
  return acc;
@@ -305,7 +305,7 @@ function canSafelyRemoveFromParentModule(
305
305
 
306
306
  const undeletedInverseDependencies = Array.from(
307
307
  topInverseDependencies
308
- ).filter(x => !delta.deleted.has(x));
308
+ ).filter((x) => !delta.deleted.has(x));
309
309
  /**
310
310
  * We can only mark the `visited` Set of modules to be safely removable if
311
311
  * 1. We do not have top a level module to compare with parentModule.
@@ -320,7 +320,7 @@ function canSafelyRemoveFromParentModule(
320
320
  undeletedInverseDependencies[0] === parentModule);
321
321
 
322
322
  if (canSafelyRemove) {
323
- visited.forEach(mod => {
323
+ visited.forEach((mod) => {
324
324
  canBeRemovedSafely.add(mod);
325
325
  });
326
326
  }
@@ -368,11 +368,11 @@ function removeDependency(
368
368
 
369
369
  Array.from(module.dependencies.values())
370
370
  .filter(
371
- dependency =>
371
+ (dependency) =>
372
372
  !delta.deleted.has(dependency.absolutePath) &&
373
373
  dependency.absolutePath !== parentModule.path
374
374
  )
375
- .forEach(dependency =>
375
+ .forEach((dependency) =>
376
376
  removeDependency(
377
377
  module,
378
378
  dependency.absolutePath,
@@ -394,8 +394,8 @@ function resolveDependencies(parentPath, dependencies, options) {
394
394
  relativePath,
395
395
  {
396
396
  absolutePath: options.resolve(parentPath, relativePath),
397
- data: result
398
- }
397
+ data: result,
398
+ },
399
399
  ];
400
400
  } catch (error) {
401
401
  // Ignore unavailable optional dependencies. They are guarded
@@ -426,7 +426,7 @@ function resolveDependencies(parentPath, dependencies, options) {
426
426
 
427
427
  function reorderGraph(graph, options) {
428
428
  const orderedDependencies = new Map();
429
- graph.entryPoints.forEach(entryPoint => {
429
+ graph.entryPoints.forEach((entryPoint) => {
430
430
  const mainModule = graph.dependencies.get(entryPoint);
431
431
 
432
432
  if (!mainModule) {
@@ -447,7 +447,7 @@ function reorderDependencies(graph, module, orderedDependencies, options) {
447
447
  orderedDependencies.set(module.path, module);
448
448
  }
449
449
 
450
- module.dependencies.forEach(dependency => {
450
+ module.dependencies.forEach((dependency) => {
451
451
  const path = dependency.absolutePath;
452
452
  const childModule = graph.dependencies.get(path);
453
453
 
@@ -466,5 +466,5 @@ function reorderDependencies(graph, module, orderedDependencies, options) {
466
466
  module.exports = {
467
467
  initialTraverseDependencies,
468
468
  traverseDependencies,
469
- reorderGraph
469
+ reorderGraph,
470
470
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,8 +10,6 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const nullthrows = require('nullthrows');
14
-
15
13
  import type {
16
14
  Dependency,
17
15
  Graph,
@@ -20,6 +18,8 @@ import type {
20
18
  TransformResultDependency,
21
19
  } from './types.flow';
22
20
 
21
+ const nullthrows = require('nullthrows');
22
+
23
23
  type Result<T> = {
24
24
  added: Map<string, Module<T>>,
25
25
  modified: Map<string, Module<T>>,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,6 +10,8 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type {JsTransformOptions} from 'metro-transform-worker';
14
+
13
15
  export type MixedOutput = {|
14
16
  +data: mixed,
15
17
  +type: string,
@@ -63,10 +65,21 @@ export type Module<T = MixedOutput> = {|
63
65
 
64
66
  export type Dependencies<T = MixedOutput> = Map<string, Module<T>>;
65
67
 
68
+ export type TransformInputOptions = $Diff<
69
+ JsTransformOptions,
70
+ {
71
+ inlinePlatform: boolean,
72
+ inlineRequires: boolean,
73
+ ...
74
+ },
75
+ >;
76
+
66
77
  export type Graph<T = MixedOutput> = {|
67
78
  dependencies: Dependencies<T>,
68
79
  importBundleNames: Set<string>,
69
80
  +entryPoints: $ReadOnlyArray<string>,
81
+ // Unused in core but useful for custom serializers / experimentalSerializerHook
82
+ +transformOptions: TransformInputOptions,
70
83
  |};
71
84
 
72
85
  export type TransformResult<T = MixedOutput> = $ReadOnly<{|
@@ -92,6 +105,7 @@ export type AllowOptionalDependencies =
92
105
  export type Options<T = MixedOutput> = {|
93
106
  +resolve: (from: string, to: string) => string,
94
107
  +transform: TransformFn<T>,
108
+ +transformOptions: TransformInputOptions,
95
109
  +onProgress: ?(numProcessed: number, total: number) => mixed,
96
110
  +experimentalImportBundleSupport: boolean,
97
111
  +shallow: boolean,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -25,7 +25,7 @@ class DeltaBundler {
25
25
  }
26
26
 
27
27
  end() {
28
- this._deltaCalculators.forEach(deltaCalculator => deltaCalculator.end());
28
+ this._deltaCalculators.forEach((deltaCalculator) => deltaCalculator.end());
29
29
 
30
30
  this._deltaCalculators = new Map();
31
31
  }
@@ -35,7 +35,7 @@ class DeltaBundler {
35
35
  const deltaCalculator = new DeltaCalculator(entryPoints, depGraph, options);
36
36
  await deltaCalculator.getDelta({
37
37
  reset: true,
38
- shallow: options.shallow
38
+ shallow: options.shallow,
39
39
  });
40
40
  const graph = deltaCalculator.getGraph();
41
41
  deltaCalculator.end();
@@ -49,7 +49,7 @@ class DeltaBundler {
49
49
  const deltaCalculator = new DeltaCalculator(entryPoints, depGraph, options);
50
50
  await deltaCalculator.getDelta({
51
51
  reset: true,
52
- shallow: options.shallow
52
+ shallow: options.shallow,
53
53
  });
54
54
  const graph = deltaCalculator.getGraph();
55
55
 
@@ -67,7 +67,7 @@ class DeltaBundler {
67
67
 
68
68
  return await deltaCalculator.getDelta({
69
69
  reset,
70
- shallow
70
+ shallow,
71
71
  });
72
72
  }
73
73