metro 0.83.2 → 0.83.4

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 (192) hide show
  1. package/package.json +25 -23
  2. package/src/Assets.js +50 -30
  3. package/src/Assets.js.flow +26 -15
  4. package/src/Bundler/util.js +33 -22
  5. package/src/Bundler/util.js.flow +2 -2
  6. package/src/Bundler.js +5 -1
  7. package/src/Bundler.js.flow +1 -1
  8. package/src/DeltaBundler/DeltaCalculator.js +9 -5
  9. package/src/DeltaBundler/DeltaCalculator.js.flow +8 -8
  10. package/src/DeltaBundler/Graph.js +21 -17
  11. package/src/DeltaBundler/Graph.js.flow +30 -30
  12. package/src/DeltaBundler/Serializers/baseJSBundle.js +5 -1
  13. package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +1 -1
  14. package/src/DeltaBundler/Serializers/getAllFiles.js.flow +2 -2
  15. package/src/DeltaBundler/Serializers/getAssets.js +5 -1
  16. package/src/DeltaBundler/Serializers/getAssets.js.flow +2 -2
  17. package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +2 -2
  18. package/src/DeltaBundler/Serializers/getRamBundleInfo.js +5 -1
  19. package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +8 -8
  20. package/src/DeltaBundler/Serializers/helpers/js.js +33 -22
  21. package/src/DeltaBundler/Serializers/helpers/js.js.flow +6 -6
  22. package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -3
  23. package/src/DeltaBundler/Serializers/hmrJSBundle.js +33 -22
  24. package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +5 -5
  25. package/src/DeltaBundler/Serializers/sourceMapGenerator.js +5 -1
  26. package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +6 -6
  27. package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +2 -2
  28. package/src/DeltaBundler/Serializers/sourceMapString.js.flow +2 -2
  29. package/src/DeltaBundler/Transformer.js +5 -1
  30. package/src/DeltaBundler/Transformer.js.flow +3 -3
  31. package/src/DeltaBundler/Worker.flow.js +5 -1
  32. package/src/DeltaBundler/Worker.flow.js.flow +1 -1
  33. package/src/DeltaBundler/WorkerFarm.js +1 -1
  34. package/src/DeltaBundler/WorkerFarm.js.flow +26 -13
  35. package/src/DeltaBundler/buildSubgraph.js +9 -5
  36. package/src/DeltaBundler/buildSubgraph.js.flow +8 -8
  37. package/src/DeltaBundler/getTransformCacheKey.js +5 -1
  38. package/src/DeltaBundler/types.js +5 -1
  39. package/src/DeltaBundler/types.js.flow +36 -34
  40. package/src/DeltaBundler.js +5 -1
  41. package/src/DeltaBundler.js.flow +2 -2
  42. package/src/HmrServer.js +42 -30
  43. package/src/HmrServer.js.flow +17 -12
  44. package/src/IncrementalBundler.js +37 -22
  45. package/src/IncrementalBundler.js.flow +13 -9
  46. package/src/ModuleGraph/worker/JsFileWrapping.js +33 -22
  47. package/src/ModuleGraph/worker/JsFileWrapping.js.flow +10 -5
  48. package/src/ModuleGraph/worker/collectDependencies.js +33 -22
  49. package/src/ModuleGraph/worker/collectDependencies.js.flow +27 -21
  50. package/src/ModuleGraph/worker/generateImportNames.js +5 -1
  51. package/src/ModuleGraph/worker/generateImportNames.js.flow +4 -2
  52. package/src/ModuleGraph/worker/importLocationsPlugin.js.flow +7 -3
  53. package/src/Server/MultipartResponse.js +5 -1
  54. package/src/Server/MultipartResponse.js.flow +1 -1
  55. package/src/Server/symbolicate.js.flow +4 -4
  56. package/src/Server.js +112 -40
  57. package/src/Server.js.flow +110 -47
  58. package/src/cli/parseKeyValueParamArray.js.flow +1 -1
  59. package/src/cli-utils.js +5 -1
  60. package/src/cli-utils.js.flow +2 -2
  61. package/src/commands/build.js +5 -1
  62. package/src/commands/build.js.flow +11 -10
  63. package/src/commands/dependencies.js +5 -1
  64. package/src/commands/dependencies.js.flow +8 -4
  65. package/src/commands/serve.js +2 -0
  66. package/src/commands/serve.js.flow +14 -9
  67. package/src/index.flow.js +38 -27
  68. package/src/index.flow.js.flow +25 -20
  69. package/src/integration_tests/basic_bundle/AssetRegistry.js.flow +1 -1
  70. package/src/integration_tests/basic_bundle/ErrorBundle.js.flow +1 -1
  71. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js +5 -1
  72. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js.flow +1 -1
  73. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-multi-line-import-with-escapes.js.flow +1 -1
  74. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-multi-line-import.js.flow +1 -1
  75. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-require-with-embedded-comment.js.flow +1 -1
  76. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-require.js.flow +1 -1
  77. package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-specifier-with-escapes.js.flow +1 -1
  78. package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js +5 -1
  79. package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js.flow +1 -1
  80. package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-require.js.flow +1 -1
  81. package/src/integration_tests/basic_bundle/import-export/index.js +33 -22
  82. package/src/integration_tests/basic_bundle/import-export/index.js.flow +3 -3
  83. package/src/integration_tests/basic_bundle/import-export/utils.js.flow +2 -2
  84. package/src/integration_tests/basic_bundle/loadBundleAsyncForTest.js.flow +1 -1
  85. package/src/integration_tests/basic_bundle/optional-dependencies/index.js.flow +1 -1
  86. package/src/integration_tests/basic_bundle/require-context/conflict.js.flow +1 -1
  87. package/src/integration_tests/basic_bundle/require-context/empty.js.flow +1 -1
  88. package/src/integration_tests/basic_bundle/require-context/matching.js.flow +1 -1
  89. package/src/integration_tests/basic_bundle/require-context/mode-eager.js.flow +1 -1
  90. package/src/integration_tests/basic_bundle/require-context/mode-lazy-once.js.flow +1 -1
  91. package/src/integration_tests/basic_bundle/require-context/mode-lazy.js.flow +1 -1
  92. package/src/integration_tests/basic_bundle/require-context/mode-sync.js.flow +2 -2
  93. package/src/integration_tests/basic_bundle/require-context/utils.js.flow +1 -1
  94. package/src/integration_tests/basic_bundle/require-resolveWeak/import-and-resolveWeak.js.flow +1 -1
  95. package/src/integration_tests/basic_bundle/require-resolveWeak/multiple.js.flow +1 -1
  96. package/src/integration_tests/basic_bundle/require-resolveWeak/never-required.js.flow +1 -1
  97. package/src/integration_tests/basic_bundle/require-resolveWeak/require-and-resolveWeak.js.flow +1 -1
  98. package/src/integration_tests/execBundle.js +5 -1
  99. package/src/integration_tests/execBundle.js.flow +1 -1
  100. package/src/lib/BatchProcessor.js +10 -3
  101. package/src/lib/BatchProcessor.js.flow +10 -7
  102. package/src/lib/CountingSet.js.flow +4 -4
  103. package/src/lib/JsonReporter.js +5 -3
  104. package/src/lib/JsonReporter.js.flow +19 -17
  105. package/src/lib/RamBundleParser.js +5 -1
  106. package/src/lib/RamBundleParser.js.flow +1 -1
  107. package/src/lib/TerminalReporter.js +39 -28
  108. package/src/lib/TerminalReporter.js.flow +15 -15
  109. package/src/lib/contextModule.js +5 -1
  110. package/src/lib/contextModule.js.flow +1 -1
  111. package/src/lib/contextModuleTemplates.js +28 -21
  112. package/src/lib/countLines.js +4 -3
  113. package/src/lib/countLines.js.flow +3 -4
  114. package/src/lib/createWebsocketServer.js +14 -3
  115. package/src/lib/createWebsocketServer.js.flow +16 -9
  116. package/src/lib/debounceAsyncQueue.js.flow +1 -1
  117. package/src/lib/formatBundlingError.js +5 -1
  118. package/src/lib/formatBundlingError.js.flow +1 -1
  119. package/src/lib/getAppendScripts.js +5 -1
  120. package/src/lib/getAppendScripts.js.flow +4 -4
  121. package/src/lib/getGraphId.js +5 -1
  122. package/src/lib/getGraphId.js.flow +1 -1
  123. package/src/lib/getPreludeCode.js +4 -0
  124. package/src/lib/getPreludeCode.js.flow +10 -3
  125. package/src/lib/getPrependedScripts.js +44 -23
  126. package/src/lib/getPrependedScripts.js.flow +10 -3
  127. package/src/lib/logToConsole.js +5 -1
  128. package/src/lib/logToConsole.js.flow +2 -2
  129. package/src/lib/parseBundleOptionsFromBundleRequestUrl.js +33 -22
  130. package/src/lib/parseCustomResolverOptions.js.flow +2 -2
  131. package/src/lib/parseCustomTransformOptions.js.flow +1 -1
  132. package/src/lib/parseJsonBody.js.flow +11 -1
  133. package/src/lib/pathUtils.js +28 -21
  134. package/src/lib/pathUtils.js.flow +1 -1
  135. package/src/lib/relativizeSourceMap.js +5 -1
  136. package/src/lib/reporting.js +5 -1
  137. package/src/lib/reporting.js.flow +4 -4
  138. package/src/lib/transformHelpers.js +16 -10
  139. package/src/lib/transformHelpers.js.flow +17 -15
  140. package/src/node-haste/DependencyGraph/ModuleResolution.js +56 -43
  141. package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +35 -32
  142. package/src/node-haste/DependencyGraph/createFileMap.js +64 -39
  143. package/src/node-haste/DependencyGraph/createFileMap.js.flow +44 -18
  144. package/src/node-haste/DependencyGraph.js +45 -32
  145. package/src/node-haste/DependencyGraph.js.flow +35 -37
  146. package/src/node-haste/Package.js +5 -1
  147. package/src/node-haste/PackageCache.js +5 -1
  148. package/src/node-haste/lib/AssetPaths.js +7 -3
  149. package/src/node-haste/lib/AssetPaths.js.flow +4 -4
  150. package/src/node-haste/lib/parsePlatformFilePath.js +11 -7
  151. package/src/node-haste/lib/parsePlatformFilePath.js.flow +4 -4
  152. package/src/shared/output/RamBundle/as-assets.js +5 -1
  153. package/src/shared/output/RamBundle/as-assets.js.flow +6 -6
  154. package/src/shared/output/RamBundle/as-indexed-file.js +5 -1
  155. package/src/shared/output/RamBundle/as-indexed-file.js.flow +5 -5
  156. package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +5 -5
  157. package/src/shared/output/RamBundle/util.js +5 -1
  158. package/src/shared/output/RamBundle/util.js.flow +5 -5
  159. package/src/shared/output/RamBundle/write-sourcemap.js +5 -1
  160. package/src/shared/output/RamBundle/write-sourcemap.js.flow +1 -1
  161. package/src/shared/output/RamBundle.js +5 -1
  162. package/src/shared/output/RamBundle.js.flow +1 -1
  163. package/src/shared/output/bundle.flow.js +5 -1
  164. package/src/shared/output/bundle.flow.js.flow +3 -3
  165. package/src/shared/output/meta.js +7 -3
  166. package/src/shared/output/meta.js.flow +1 -1
  167. package/src/shared/output/writeFile.js +13 -4
  168. package/src/shared/output/writeFile.js.flow +8 -2
  169. package/src/shared/types.js.flow +20 -5
  170. package/src/Asset.d.ts +0 -25
  171. package/src/Bundler.d.ts +0 -39
  172. package/src/DeltaBundler/Graph.d.ts +0 -40
  173. package/src/DeltaBundler/Serializers/getExplodedSourceMap.d.ts +0 -26
  174. package/src/DeltaBundler/Serializers/getRamBundleInfo.d.ts +0 -18
  175. package/src/DeltaBundler/Worker.d.ts +0 -45
  176. package/src/DeltaBundler/types.d.ts +0 -166
  177. package/src/DeltaBundler.d.ts +0 -58
  178. package/src/IncrementalBundler.d.ts +0 -98
  179. package/src/ModuleGraph/test-helpers.js +0 -75
  180. package/src/ModuleGraph/worker/collectDependencies.d.ts +0 -27
  181. package/src/Server/MultipartResponse.d.ts +0 -31
  182. package/src/Server/symbolicate.d.ts +0 -31
  183. package/src/Server.d.ts +0 -118
  184. package/src/index.d.ts +0 -193
  185. package/src/lib/CountingSet.d.ts +0 -48
  186. package/src/lib/TerminalReporter.d.ts +0 -27
  187. package/src/lib/contextModule.d.ts +0 -22
  188. package/src/lib/getGraphId.d.ts +0 -11
  189. package/src/lib/reporting.d.ts +0 -144
  190. package/src/node-haste/DependencyGraph.d.ts +0 -62
  191. package/src/shared/output/bundle.d.ts +0 -35
  192. package/src/shared/types.d.ts +0 -130
@@ -6,28 +6,35 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getContextModuleTemplate = getContextModuleTemplate;
7
7
  var os = _interopRequireWildcard(require("os"));
8
8
  var path = _interopRequireWildcard(require("path"));
9
- function _getRequireWildcardCache(e) {
10
- if ("function" != typeof WeakMap) return null;
11
- var r = new WeakMap(),
12
- t = new WeakMap();
13
- return (_getRequireWildcardCache = function (e) {
14
- return e ? t : r;
15
- })(e);
16
- }
17
- function _interopRequireWildcard(e, r) {
18
- if (!r && e && e.__esModule) return e;
19
- if (null === e || ("object" != typeof e && "function" != typeof e))
20
- return { default: e };
21
- var t = _getRequireWildcardCache(r);
22
- if (t && t.has(e)) return t.get(e);
23
- var n = { __proto__: null },
24
- a = Object.defineProperty && Object.getOwnPropertyDescriptor;
25
- for (var u in e)
26
- if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
27
- var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
28
- i && (i.get || i.set) ? Object.defineProperty(n, u, i) : (n[u] = e[u]);
9
+ function _interopRequireWildcard(e, t) {
10
+ if ("function" == typeof WeakMap)
11
+ var r = new WeakMap(),
12
+ n = new WeakMap();
13
+ return (_interopRequireWildcard = function (e, t) {
14
+ if (!t && e && e.__esModule) return e;
15
+ var o,
16
+ i,
17
+ f = {
18
+ __proto__: null,
19
+ default: e,
20
+ };
21
+ if (null === e || ("object" != typeof e && "function" != typeof e))
22
+ return f;
23
+ if ((o = t ? n : r)) {
24
+ if (o.has(e)) return o.get(e);
25
+ o.set(e, f);
29
26
  }
30
- return ((n.default = e), t && t.set(e, n), n);
27
+ for (const t in e)
28
+ "default" !== t &&
29
+ {}.hasOwnProperty.call(e, t) &&
30
+ ((i =
31
+ (o = Object.defineProperty) &&
32
+ Object.getOwnPropertyDescriptor(e, t)) &&
33
+ (i.get || i.set)
34
+ ? o(f, t, i)
35
+ : (f[t] = e[t]));
36
+ return f;
37
+ })(e, t);
31
38
  }
32
39
  function createFileMap(modulePath, files, processModule) {
33
40
  let mapString = "\n";
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true,
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = countLines;
7
7
  const newline = /\r\n?|\n|\u2028|\u2029/g;
8
- const countLines = (string) => (string.match(newline) || []).length + 1;
9
- var _default = (exports.default = countLines);
8
+ function countLines(string) {
9
+ return (string.match(newline) || []).length + 1;
10
+ }
@@ -11,7 +11,6 @@
11
11
 
12
12
  const newline = /\r\n?|\n|\u2028|\u2029/g;
13
13
 
14
- const countLines = (string: string): number =>
15
- (string.match(newline) || []).length + 1;
16
-
17
- export default countLines;
14
+ export default function countLines(string: string): number {
15
+ return (string.match(newline) || []).length + 1;
16
+ }
@@ -4,10 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true,
5
5
  });
6
6
  exports.default = createWebsocketServer;
7
+ var _timers = require("timers");
7
8
  var _ws = _interopRequireDefault(require("ws"));
8
9
  function _interopRequireDefault(e) {
9
- return e && e.__esModule ? e : { default: e };
10
+ return e && e.__esModule
11
+ ? e
12
+ : {
13
+ default: e,
14
+ };
10
15
  }
16
+ const KEEP_ALIVE_INTERVAL_MS = 20000;
11
17
  function createWebsocketServer({ websocketServer }) {
12
18
  const wss = new _ws.default.Server({
13
19
  noServer: true,
@@ -15,9 +21,9 @@ function createWebsocketServer({ websocketServer }) {
15
21
  wss.on("connection", async (ws, req) => {
16
22
  let connected = true;
17
23
  const url = req.url;
18
- const sendFn = (...args) => {
24
+ const sendFn = (data) => {
19
25
  if (connected) {
20
- ws.send(...args);
26
+ ws.send(data);
21
27
  }
22
28
  };
23
29
  const client = await websocketServer.onClientConnect(url, sendFn);
@@ -25,10 +31,15 @@ function createWebsocketServer({ websocketServer }) {
25
31
  ws.close();
26
32
  return;
27
33
  }
34
+ const keepAliveInterval = (0, _timers.setInterval)(
35
+ () => ws.ping(),
36
+ KEEP_ALIVE_INTERVAL_MS,
37
+ ).unref();
28
38
  ws.on("error", (e) => {
29
39
  websocketServer.onClientError && websocketServer.onClientError(client, e);
30
40
  });
31
41
  ws.on("close", () => {
42
+ (0, _timers.clearInterval)(keepAliveInterval);
32
43
  websocketServer.onClientDisconnect &&
33
44
  websocketServer.onClientDisconnect(client);
34
45
  connected = false;
@@ -4,11 +4,12 @@
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.
6
6
  *
7
- * @flow
7
+ * @flow strict
8
8
  * @format
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
+ import {clearInterval, setInterval} from 'timers';
12
13
  import ws from 'ws';
13
14
 
14
15
  type WebsocketServiceInterface<T> = interface {
@@ -16,13 +17,13 @@ type WebsocketServiceInterface<T> = interface {
16
17
  url: string,
17
18
  sendFn: (data: string) => void,
18
19
  ) => Promise<?T>,
19
- +onClientDisconnect?: (client: T) => mixed,
20
- +onClientError?: (client: T, e: ErrorEvent) => mixed,
20
+ +onClientDisconnect?: (client: T) => unknown,
21
+ +onClientError?: (client: T, e: Error) => unknown,
21
22
  +onClientMessage?: (
22
23
  client: T,
23
24
  message: string | Buffer | ArrayBuffer | Array<Buffer>,
24
25
  sendFn: (data: string) => void,
25
- ) => mixed,
26
+ ) => unknown,
26
27
  };
27
28
 
28
29
  type HMROptions<TClient> = {
@@ -30,6 +31,8 @@ type HMROptions<TClient> = {
30
31
  ...
31
32
  };
32
33
 
34
+ const KEEP_ALIVE_INTERVAL_MS = 20000;
35
+
33
36
  /**
34
37
  * Returns a WebSocketServer to be attached to an existing HTTP instance. It forwards
35
38
  * the received events on the given "websocketServer" parameter. It must be an
@@ -41,7 +44,7 @@ type HMROptions<TClient> = {
41
44
  * - onClientDisconnect
42
45
  */
43
46
 
44
- export default function createWebsocketServer<TClient: Object>({
47
+ export default function createWebsocketServer<TClient>({
45
48
  websocketServer,
46
49
  }: HMROptions<TClient>): ws.Server {
47
50
  const wss = new ws.Server({
@@ -52,10 +55,9 @@ export default function createWebsocketServer<TClient: Object>({
52
55
  let connected = true;
53
56
  const url = req.url;
54
57
 
55
- const sendFn = (...args: Array<string>) => {
58
+ const sendFn = (data: string) => {
56
59
  if (connected) {
57
- // $FlowFixMe[incompatible-type]
58
- ws.send(...args);
60
+ ws.send(data);
59
61
  }
60
62
  };
61
63
 
@@ -66,12 +68,17 @@ export default function createWebsocketServer<TClient: Object>({
66
68
  return;
67
69
  }
68
70
 
71
+ const keepAliveInterval = setInterval(
72
+ () => ws.ping(),
73
+ KEEP_ALIVE_INTERVAL_MS,
74
+ ).unref();
75
+
69
76
  ws.on('error', e => {
70
- // $FlowFixMe[incompatible-type]
71
77
  websocketServer.onClientError && websocketServer.onClientError(client, e);
72
78
  });
73
79
 
74
80
  ws.on('close', () => {
81
+ clearInterval(keepAliveInterval);
75
82
  websocketServer.onClientDisconnect &&
76
83
  websocketServer.onClientDisconnect(client);
77
84
  connected = false;
@@ -33,7 +33,7 @@ export default function debounceAsyncQueue<T>(
33
33
  }
34
34
 
35
35
  return () =>
36
- new Promise((resolve: T => void, reject: mixed => void) => {
36
+ new Promise((resolve: T => void, reject: unknown => void) => {
37
37
  callbacks.push(resolve);
38
38
 
39
39
  if (!executing) {
@@ -20,7 +20,11 @@ var _fs = _interopRequireDefault(require("fs"));
20
20
  var _metroCore = require("metro-core");
21
21
  var _serializeError = _interopRequireDefault(require("serialize-error"));
22
22
  function _interopRequireDefault(e) {
23
- return e && e.__esModule ? e : { default: e };
23
+ return e && e.__esModule
24
+ ? e
25
+ : {
26
+ default: e,
27
+ };
24
28
  }
25
29
  function formatBundlingError(error) {
26
30
  if (error instanceof _metroCore.AmbiguousModuleResolutionError) {
@@ -4,8 +4,8 @@
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.
6
6
  *
7
- * @format
8
7
  * @flow
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {FormattedError} from 'metro-runtime/src/modules/types';
@@ -12,7 +12,11 @@ var _CountingSet = _interopRequireDefault(require("./CountingSet"));
12
12
  var _countLines = _interopRequireDefault(require("./countLines"));
13
13
  var _nullthrows = _interopRequireDefault(require("nullthrows"));
14
14
  function _interopRequireDefault(e) {
15
- return e && e.__esModule ? e : { default: e };
15
+ return e && e.__esModule
16
+ ? e
17
+ : {
18
+ default: e,
19
+ };
16
20
  }
17
21
  function getAppendScripts(entryPoint, modules, options) {
18
22
  const output = [];
@@ -18,13 +18,13 @@ import CountingSet from './CountingSet';
18
18
  import countLines from './countLines';
19
19
  import nullthrows from 'nullthrows';
20
20
 
21
- type Options<T: number | string> = $ReadOnly<{
21
+ type Options<T: number | string> = Readonly<{
22
22
  asyncRequireModulePath: string,
23
23
  createModuleId: string => T,
24
24
  getRunModuleStatement: (moduleId: T, globalPrefix: string) => string,
25
25
  globalPrefix: string,
26
26
  inlineSourceMap: ?boolean,
27
- runBeforeMainModule: $ReadOnlyArray<string>,
27
+ runBeforeMainModule: ReadonlyArray<string>,
28
28
  runModule: boolean,
29
29
  shouldAddToIgnoreList: (Module<>) => boolean,
30
30
  sourceMapUrl: ?string,
@@ -35,9 +35,9 @@ type Options<T: number | string> = $ReadOnly<{
35
35
 
36
36
  export default function getAppendScripts<T: number | string>(
37
37
  entryPoint: string,
38
- modules: $ReadOnlyArray<Module<>>,
38
+ modules: ReadonlyArray<Module<>>,
39
39
  options: Options<T>,
40
- ): $ReadOnlyArray<Module<>> {
40
+ ): ReadonlyArray<Module<>> {
41
41
  const output: Array<Module<>> = [];
42
42
 
43
43
  if (options.runModule) {
@@ -8,7 +8,11 @@ var _canonicalize = _interopRequireDefault(
8
8
  require("metro-core/private/canonicalize"),
9
9
  );
10
10
  function _interopRequireDefault(e) {
11
- return e && e.__esModule ? e : { default: e };
11
+ return e && e.__esModule
12
+ ? e
13
+ : {
14
+ default: e,
15
+ };
12
16
  }
13
17
  function getGraphId(
14
18
  entryFile,
@@ -24,7 +24,7 @@ export default function getGraphId(
24
24
  lazy,
25
25
  unstable_allowRequireContext,
26
26
  resolverOptions,
27
- }: $ReadOnly<{
27
+ }: Readonly<{
28
28
  shallow: boolean,
29
29
  lazy: boolean,
30
30
  unstable_allowRequireContext: boolean,
@@ -9,6 +9,7 @@ function getPreludeCode({
9
9
  isDev,
10
10
  globalPrefix,
11
11
  requireCycleIgnorePatterns,
12
+ unstable_forceFullRefreshPatterns,
12
13
  }) {
13
14
  const vars = [
14
15
  "__BUNDLE_START_TIME__=globalThis.nativePerformanceNow?nativePerformanceNow():Date.now()",
@@ -21,6 +22,9 @@ function getPreludeCode({
21
22
  vars.push(
22
23
  `${globalPrefix}__requireCycleIgnorePatterns=[${requireCycleIgnorePatterns.map((regex) => regex.toString()).join(",")}]`,
23
24
  );
25
+ vars.push(
26
+ `${globalPrefix}__unstable_forceFullRefreshPatterns=[${unstable_forceFullRefreshPatterns.map((regex) => regex.toString()).join(",")}]`,
27
+ );
24
28
  }
25
29
  return `var ${vars.join(",")};${processEnv(isDev ? "development" : "production")}`;
26
30
  }
@@ -14,11 +14,13 @@ export default function getPreludeCode({
14
14
  isDev,
15
15
  globalPrefix,
16
16
  requireCycleIgnorePatterns,
17
+ unstable_forceFullRefreshPatterns,
17
18
  }: {
18
- +extraVars?: {[string]: mixed, ...},
19
+ +extraVars?: {[string]: unknown, ...},
19
20
  +isDev: boolean,
20
21
  +globalPrefix: string,
21
- +requireCycleIgnorePatterns: $ReadOnlyArray<RegExp>,
22
+ +requireCycleIgnorePatterns: ReadonlyArray<RegExp>,
23
+ +unstable_forceFullRefreshPatterns: ReadonlyArray<RegExp>,
22
24
  }): string {
23
25
  const vars = [
24
26
  // Ensure these variable names match the ones referenced in metro-runtime
@@ -38,6 +40,11 @@ export default function getPreludeCode({
38
40
  .map(regex => regex.toString())
39
41
  .join(',')}]`,
40
42
  );
43
+ vars.push(
44
+ `${globalPrefix}__unstable_forceFullRefreshPatterns=[${unstable_forceFullRefreshPatterns
45
+ .map(regex => regex.toString())
46
+ .join(',')}]`,
47
+ );
41
48
  }
42
49
 
43
50
  return `var ${vars.join(',')};${processEnv(
@@ -47,7 +54,7 @@ export default function getPreludeCode({
47
54
 
48
55
  const excluded = new Set(['__BUNDLE_START_TIME__', '__DEV__', 'process']);
49
56
 
50
- function formatExtraVars(extraVars: ?{[string]: mixed, ...}): Array<string> {
57
+ function formatExtraVars(extraVars: ?{[string]: unknown, ...}): Array<string> {
51
58
  const assignments = [];
52
59
 
53
60
  for (const key in extraVars) {
@@ -11,31 +11,42 @@ var transformHelpers = _interopRequireWildcard(require("./transformHelpers"));
11
11
  var defaults = _interopRequireWildcard(
12
12
  require("metro-config/private/defaults/defaults"),
13
13
  );
14
- function _getRequireWildcardCache(e) {
15
- if ("function" != typeof WeakMap) return null;
16
- var r = new WeakMap(),
17
- t = new WeakMap();
18
- return (_getRequireWildcardCache = function (e) {
19
- return e ? t : r;
20
- })(e);
21
- }
22
- function _interopRequireWildcard(e, r) {
23
- if (!r && e && e.__esModule) return e;
24
- if (null === e || ("object" != typeof e && "function" != typeof e))
25
- return { default: e };
26
- var t = _getRequireWildcardCache(r);
27
- if (t && t.has(e)) return t.get(e);
28
- var n = { __proto__: null },
29
- a = Object.defineProperty && Object.getOwnPropertyDescriptor;
30
- for (var u in e)
31
- if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
32
- var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
33
- i && (i.get || i.set) ? Object.defineProperty(n, u, i) : (n[u] = e[u]);
14
+ function _interopRequireWildcard(e, t) {
15
+ if ("function" == typeof WeakMap)
16
+ var r = new WeakMap(),
17
+ n = new WeakMap();
18
+ return (_interopRequireWildcard = function (e, t) {
19
+ if (!t && e && e.__esModule) return e;
20
+ var o,
21
+ i,
22
+ f = {
23
+ __proto__: null,
24
+ default: e,
25
+ };
26
+ if (null === e || ("object" != typeof e && "function" != typeof e))
27
+ return f;
28
+ if ((o = t ? n : r)) {
29
+ if (o.has(e)) return o.get(e);
30
+ o.set(e, f);
34
31
  }
35
- return ((n.default = e), t && t.set(e, n), n);
32
+ for (const t in e)
33
+ "default" !== t &&
34
+ {}.hasOwnProperty.call(e, t) &&
35
+ ((i =
36
+ (o = Object.defineProperty) &&
37
+ Object.getOwnPropertyDescriptor(e, t)) &&
38
+ (i.get || i.set)
39
+ ? o(f, t, i)
40
+ : (f[t] = e[t]));
41
+ return f;
42
+ })(e, t);
36
43
  }
37
44
  function _interopRequireDefault(e) {
38
- return e && e.__esModule ? e : { default: e };
45
+ return e && e.__esModule
46
+ ? e
47
+ : {
48
+ default: e,
49
+ };
39
50
  }
40
51
  async function getPrependedScripts(
41
52
  config,
@@ -76,6 +87,8 @@ async function getPrependedScripts(
76
87
  lazy: false,
77
88
  unstable_enablePackageExports:
78
89
  config.resolver.unstable_enablePackageExports,
90
+ unstable_incrementalResolution:
91
+ config.resolver.unstable_incrementalResolution,
79
92
  shallow: false,
80
93
  },
81
94
  );
@@ -84,15 +97,23 @@ async function getPrependedScripts(
84
97
  dev: options.dev,
85
98
  globalPrefix: config.transformer.globalPrefix,
86
99
  requireCycleIgnorePatterns: config.resolver.requireCycleIgnorePatterns,
100
+ unstable_forceFullRefreshPatterns:
101
+ config.resolver.unstable_forceFullRefreshPatterns,
87
102
  }),
88
103
  ...dependencies.values(),
89
104
  ];
90
105
  }
91
- function _getPrelude({ dev, globalPrefix, requireCycleIgnorePatterns }) {
106
+ function _getPrelude({
107
+ dev,
108
+ globalPrefix,
109
+ requireCycleIgnorePatterns,
110
+ unstable_forceFullRefreshPatterns,
111
+ }) {
92
112
  const code = (0, _getPreludeCode.default)({
93
113
  isDev: dev,
94
114
  globalPrefix,
95
115
  requireCycleIgnorePatterns,
116
+ unstable_forceFullRefreshPatterns,
96
117
  });
97
118
  const name = "__prelude__";
98
119
  return {
@@ -10,7 +10,7 @@
10
10
  */
11
11
 
12
12
  import type Bundler from '../Bundler';
13
- import type DeltaBundler, {Module} from '../DeltaBundler';
13
+ import type {Module, default as DeltaBundler} from '../DeltaBundler';
14
14
  import type {TransformInputOptions} from '../DeltaBundler/types';
15
15
  import type {ResolverInputOptions} from '../shared/types';
16
16
  import type {ConfigT} from 'metro-config';
@@ -27,7 +27,7 @@ export default async function getPrependedScripts(
27
27
  resolverOptions: ResolverInputOptions,
28
28
  bundler: Bundler,
29
29
  deltaBundler: DeltaBundler<>,
30
- ): Promise<$ReadOnlyArray<Module<>>> {
30
+ ): Promise<ReadonlyArray<Module<>>> {
31
31
  // Get all the polyfills from the relevant option params (the
32
32
  // `getPolyfills()` method and the `polyfillModuleNames` variable).
33
33
  const polyfillModuleNames = config.serializer
@@ -64,6 +64,8 @@ export default async function getPrependedScripts(
64
64
  lazy: false,
65
65
  unstable_enablePackageExports:
66
66
  config.resolver.unstable_enablePackageExports,
67
+ unstable_incrementalResolution:
68
+ config.resolver.unstable_incrementalResolution,
67
69
  shallow: false,
68
70
  },
69
71
  );
@@ -73,6 +75,8 @@ export default async function getPrependedScripts(
73
75
  dev: options.dev,
74
76
  globalPrefix: config.transformer.globalPrefix,
75
77
  requireCycleIgnorePatterns: config.resolver.requireCycleIgnorePatterns,
78
+ unstable_forceFullRefreshPatterns:
79
+ config.resolver.unstable_forceFullRefreshPatterns,
76
80
  }),
77
81
  ...dependencies.values(),
78
82
  ];
@@ -82,16 +86,19 @@ function _getPrelude({
82
86
  dev,
83
87
  globalPrefix,
84
88
  requireCycleIgnorePatterns,
89
+ unstable_forceFullRefreshPatterns,
85
90
  }: {
86
91
  dev: boolean,
87
92
  globalPrefix: string,
88
- requireCycleIgnorePatterns: $ReadOnlyArray<RegExp>,
93
+ requireCycleIgnorePatterns: ReadonlyArray<RegExp>,
94
+ unstable_forceFullRefreshPatterns: ReadonlyArray<RegExp>,
89
95
  ...
90
96
  }): Module<> {
91
97
  const code = getPreludeCode({
92
98
  isDev: dev,
93
99
  globalPrefix,
94
100
  requireCycleIgnorePatterns,
101
+ unstable_forceFullRefreshPatterns,
95
102
  });
96
103
  const name = '__prelude__';
97
104
 
@@ -7,7 +7,11 @@ exports.default = void 0;
7
7
  var _chalk = _interopRequireDefault(require("chalk"));
8
8
  var _util = _interopRequireDefault(require("util"));
9
9
  function _interopRequireDefault(e) {
10
- return e && e.__esModule ? e : { default: e };
10
+ return e && e.__esModule
11
+ ? e
12
+ : {
13
+ default: e,
14
+ };
11
15
  }
12
16
  const groupStack = [];
13
17
  let collapsedGuardTimer;
@@ -4,8 +4,8 @@
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.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  /* eslint-disable no-console */
@@ -18,7 +18,7 @@ import util from 'util';
18
18
  const groupStack = [];
19
19
  let collapsedGuardTimer;
20
20
 
21
- export default (terminal: Terminal, level: string, ...data: Array<mixed>) => {
21
+ export default (terminal: Terminal, level: string, ...data: Array<unknown>) => {
22
22
  // $FlowFixMe[invalid-computed-prop]
23
23
  const logFunction = console[level] && level !== 'trace' ? level : 'log';
24
24
  const color =
@@ -16,31 +16,42 @@ var _parseCustomTransformOptions = _interopRequireDefault(
16
16
  );
17
17
  var jscSafeUrl = _interopRequireWildcard(require("jsc-safe-url"));
18
18
  var _path = _interopRequireDefault(require("path"));
19
- function _getRequireWildcardCache(e) {
20
- if ("function" != typeof WeakMap) return null;
21
- var r = new WeakMap(),
22
- t = new WeakMap();
23
- return (_getRequireWildcardCache = function (e) {
24
- return e ? t : r;
25
- })(e);
26
- }
27
- function _interopRequireWildcard(e, r) {
28
- if (!r && e && e.__esModule) return e;
29
- if (null === e || ("object" != typeof e && "function" != typeof e))
30
- return { default: e };
31
- var t = _getRequireWildcardCache(r);
32
- if (t && t.has(e)) return t.get(e);
33
- var n = { __proto__: null },
34
- a = Object.defineProperty && Object.getOwnPropertyDescriptor;
35
- for (var u in e)
36
- if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
37
- var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
38
- i && (i.get || i.set) ? Object.defineProperty(n, u, i) : (n[u] = e[u]);
19
+ function _interopRequireWildcard(e, t) {
20
+ if ("function" == typeof WeakMap)
21
+ var r = new WeakMap(),
22
+ n = new WeakMap();
23
+ return (_interopRequireWildcard = function (e, t) {
24
+ if (!t && e && e.__esModule) return e;
25
+ var o,
26
+ i,
27
+ f = {
28
+ __proto__: null,
29
+ default: e,
30
+ };
31
+ if (null === e || ("object" != typeof e && "function" != typeof e))
32
+ return f;
33
+ if ((o = t ? n : r)) {
34
+ if (o.has(e)) return o.get(e);
35
+ o.set(e, f);
39
36
  }
40
- return ((n.default = e), t && t.set(e, n), n);
37
+ for (const t in e)
38
+ "default" !== t &&
39
+ {}.hasOwnProperty.call(e, t) &&
40
+ ((i =
41
+ (o = Object.defineProperty) &&
42
+ Object.getOwnPropertyDescriptor(e, t)) &&
43
+ (i.get || i.set)
44
+ ? o(f, t, i)
45
+ : (f[t] = e[t]));
46
+ return f;
47
+ })(e, t);
41
48
  }
42
49
  function _interopRequireDefault(e) {
43
- return e && e.__esModule ? e : { default: e };
50
+ return e && e.__esModule
51
+ ? e
52
+ : {
53
+ default: e,
54
+ };
44
55
  }
45
56
  const debug = require("debug")(
46
57
  "Metro:Server:parseBundleOptionsFromBundleRequestUrl",
@@ -9,7 +9,7 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- import type {CustomResolverOptions} from '../../../metro-resolver/src/types';
12
+ import type {CustomResolverOptions} from 'metro-resolver';
13
13
 
14
14
  const PREFIX = 'resolver.';
15
15
 
@@ -18,7 +18,7 @@ export default function parseCustomResolverOptions(
18
18
  ): CustomResolverOptions {
19
19
  const customResolverOptions: {
20
20
  __proto__: null,
21
- [string]: mixed,
21
+ [string]: unknown,
22
22
  ...
23
23
  } = Object.create(null);
24
24
 
@@ -18,7 +18,7 @@ export default function parseCustomTransformOptions(
18
18
  ): CustomTransformOptions {
19
19
  const customTransformOptions: {
20
20
  __proto__: null,
21
- [string]: mixed,
21
+ [string]: unknown,
22
22
  ...
23
23
  } = Object.create(null);
24
24