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,13 +9,10 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
12
  import type {AssetData} from './Assets';
15
13
  import type {ReadOnlyGraph} from './DeltaBundler';
16
14
  import type {ServerOptions} from './Server';
17
- import type {BuildOptions} from './shared/types.flow';
18
- import type {OutputOptions, RequestOptions} from './shared/types.flow.js';
15
+ import type {BuildOptions, OutputOptions, RequestOptions} from './shared/types';
19
16
  import type {HandleFunction} from 'connect';
20
17
  import type {Server as HttpServer} from 'http';
21
18
  import type {Server as HttpsServer} from 'https';
@@ -30,30 +27,31 @@ import type {CustomResolverOptions} from 'metro-resolver';
30
27
  import type {CustomTransformOptions} from 'metro-transform-worker';
31
28
  import typeof Yargs from 'yargs';
32
29
 
33
- const makeBuildCommand = require('./commands/build');
34
- const makeDependenciesCommand = require('./commands/dependencies');
35
- const makeServeCommand = require('./commands/serve');
36
- const MetroHmrServer = require('./HmrServer');
37
- const IncrementalBundler = require('./IncrementalBundler');
38
- const createWebsocketServer = require('./lib/createWebsocketServer');
39
- const JsonReporter = require('./lib/JsonReporter');
40
- const TerminalReporter = require('./lib/TerminalReporter');
41
- const MetroServer = require('./Server');
42
- const outputBundle = require('./shared/output/bundle');
43
- const chalk = require('chalk');
44
- const fs = require('fs');
45
- const http = require('http');
46
- const https = require('https');
47
- const {
30
+ import makeBuildCommand from './commands/build';
31
+ import makeDependenciesCommand from './commands/dependencies';
32
+ import makeServeCommand from './commands/serve';
33
+ import MetroHmrServer from './HmrServer';
34
+ import IncrementalBundler from './IncrementalBundler';
35
+ import createWebsocketServer from './lib/createWebsocketServer';
36
+ import JsonReporter from './lib/JsonReporter';
37
+ import TerminalReporter from './lib/TerminalReporter';
38
+ import MetroServer from './Server';
39
+ import * as outputBundle from './shared/output/bundle';
40
+ import chalk from 'chalk';
41
+ import fs from 'fs';
42
+ import http from 'http';
43
+ import https from 'https';
44
+ import {
48
45
  getDefaultConfig,
49
46
  loadConfig,
50
47
  mergeConfig,
51
48
  resolveConfig,
52
- } = require('metro-config');
53
- const {Terminal} = require('metro-core');
54
- const net = require('net');
55
- const nullthrows = require('nullthrows');
56
- const {parse} = require('url');
49
+ } from 'metro-config';
50
+ import {Terminal} from 'metro-core';
51
+ import net from 'net';
52
+ import nullthrows from 'nullthrows';
53
+
54
+ const DEFAULTS = MetroServer.DEFAULT_BUNDLE_OPTIONS;
57
55
 
58
56
  type MetroMiddleWare = {
59
57
  attachHmrServer: (httpServer: HttpServer | HttpsServer) => void,
@@ -150,9 +148,7 @@ export type RunBuildResult = {
150
148
  type BuildCommandOptions = {} | null;
151
149
  type ServeCommandOptions = {} | null;
152
150
 
153
- exports.Terminal = Terminal;
154
- exports.JsonReporter = JsonReporter;
155
- exports.TerminalReporter = TerminalReporter;
151
+ export {Terminal, JsonReporter, TerminalReporter};
156
152
 
157
153
  export type {AssetData} from './Assets';
158
154
  export type {Reporter, ReportableEvent} from './lib/reporting';
@@ -164,7 +160,7 @@ async function getConfig(config: InputConfigT): Promise<ConfigT> {
164
160
  return mergeConfig(defaultConfig, config);
165
161
  }
166
162
 
167
- async function runMetro(
163
+ export async function runMetro(
168
164
  config: InputConfigT,
169
165
  options?: RunMetroOptions,
170
166
  ): Promise<MetroServer> {
@@ -207,12 +203,9 @@ async function runMetro(
207
203
  return server;
208
204
  }
209
205
 
210
- exports.runMetro = runMetro;
211
- exports.loadConfig = loadConfig;
212
- exports.mergeConfig = mergeConfig;
213
- exports.resolveConfig = resolveConfig;
206
+ export {loadConfig, mergeConfig, resolveConfig};
214
207
 
215
- const createConnectMiddleware = async function (
208
+ export const createConnectMiddleware = async function (
216
209
  config: ConfigT,
217
210
  options?: RunMetroOptions,
218
211
  ): Promise<MetroMiddleWare> {
@@ -238,7 +231,7 @@ const createConnectMiddleware = async function (
238
231
  ),
239
232
  });
240
233
  httpServer.on('upgrade', (request, socket, head) => {
241
- const {pathname} = parse(request.url);
234
+ const {pathname} = new URL(request.url, 'resolve://');
242
235
  if (pathname === '/hot') {
243
236
  wss.handleUpgrade(request, socket, head, ws => {
244
237
  wss.emit('connection', ws, request);
@@ -255,9 +248,8 @@ const createConnectMiddleware = async function (
255
248
  },
256
249
  };
257
250
  };
258
- exports.createConnectMiddleware = createConnectMiddleware;
259
251
 
260
- exports.runServer = async (
252
+ export const runServer = async (
261
253
  config: ConfigT,
262
254
  {
263
255
  hasReducedPerformance = false,
@@ -287,6 +279,7 @@ exports.runServer = async (
287
279
  );
288
280
  }
289
281
  // Lazy require
282
+ // eslint-disable-next-line import/no-commonjs
290
283
  const connect = require('connect');
291
284
 
292
285
  const serverApp = connect();
@@ -318,7 +311,7 @@ exports.runServer = async (
318
311
  ...secureServerOptions,
319
312
  };
320
313
  }
321
- // $FlowFixMe[incompatible-call] 'http' and 'https' Flow types do not match
314
+ // $FlowFixMe[incompatible-type] 'http' and 'https' Flow types do not match
322
315
  httpServer = https.createServer(options, serverApp);
323
316
  } else {
324
317
  httpServer = http.createServer(serverApp);
@@ -352,7 +345,7 @@ exports.runServer = async (
352
345
  };
353
346
 
354
347
  httpServer.on('upgrade', (request, socket, head) => {
355
- const {pathname} = parse(request.url);
348
+ const {pathname} = new URL(request.url, 'resolve://');
356
349
  if (pathname != null && websocketEndpoints[pathname]) {
357
350
  websocketEndpoints[pathname].handleUpgrade(
358
351
  request,
@@ -387,12 +380,12 @@ exports.runServer = async (
387
380
  });
388
381
  };
389
382
 
390
- exports.runBuild = async (
383
+ export const runBuild = async (
391
384
  config: ConfigT,
392
385
  {
393
386
  assets = false,
394
- customResolverOptions,
395
- customTransformOptions,
387
+ customResolverOptions = DEFAULTS.customResolverOptions,
388
+ customTransformOptions = DEFAULTS.customTransformOptions,
396
389
  dev = false,
397
390
  entry,
398
391
  onBegin,
@@ -406,7 +399,7 @@ exports.runBuild = async (
406
399
  platform = 'web',
407
400
  sourceMap = false,
408
401
  sourceMapUrl,
409
- unstable_transformProfile,
402
+ unstable_transformProfile = DEFAULTS.unstable_transformProfile,
410
403
  }: RunBuildOptions,
411
404
  ): Promise<RunBuildResult> => {
412
405
  const metroServer = await runMetro(config, {
@@ -414,13 +407,13 @@ exports.runBuild = async (
414
407
  });
415
408
 
416
409
  try {
417
- const requestOptions: RequestOptions = {
410
+ const requestOptions = {
418
411
  dev,
419
412
  entryFile: entry,
420
413
  inlineSourceMap: sourceMap && !sourceMapUrl,
421
414
  minify,
422
415
  platform,
423
- sourceMapUrl: sourceMap === false ? undefined : sourceMapUrl,
416
+ ...(sourceMap === false ? {} : {sourceMapUrl}),
424
417
  createModuleIdFactory: config.serializer.createModuleIdFactory,
425
418
  onProgress,
426
419
  customResolverOptions,
@@ -455,7 +448,7 @@ exports.runBuild = async (
455
448
  const sourcemapOutput =
456
449
  sourceMap === false
457
450
  ? undefined
458
- : sourceMapOut ?? out?.replace(/(\.js)?$/, '.map');
451
+ : (sourceMapOut ?? out?.replace(/(\.js)?$/, '.map'));
459
452
 
460
453
  const outputOptions: OutputOptions = {
461
454
  bundleOutput,
@@ -478,7 +471,7 @@ exports.runBuild = async (
478
471
  }
479
472
  };
480
473
 
481
- exports.buildGraph = async function (
474
+ export const buildGraph = async function (
482
475
  config: InputConfigT,
483
476
  {
484
477
  customTransformOptions = Object.create(null),
@@ -521,7 +514,7 @@ type AttachMetroCLIOptions = {
521
514
  ...
522
515
  };
523
516
 
524
- exports.attachMetroCli = function (
517
+ export const attachMetroCli = function (
525
518
  yargs: Yargs,
526
519
  options?: AttachMetroCLIOptions = {},
527
520
  ): Yargs {
@@ -555,3 +548,23 @@ async function earlyPortCheck(host: void | string, port: number) {
555
548
  await new Promise(resolve => server.close(() => resolve()));
556
549
  }
557
550
  }
551
+
552
+ /**
553
+ * Backwards-compatibility with CommonJS consumers using interopRequireDefault.
554
+ * Do not add to this list.
555
+ *
556
+ * @deprecated Default import from 'metro' is deprecated, use named exports.
557
+ */
558
+ export default {
559
+ attachMetroCli,
560
+ runServer,
561
+ Terminal,
562
+ JsonReporter,
563
+ TerminalReporter,
564
+ loadConfig,
565
+ mergeConfig,
566
+ resolveConfig,
567
+ createConnectMiddleware,
568
+ runBuild,
569
+ buildGraph,
570
+ };
package/src/index.js.flow CHANGED
@@ -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
  /*::
@@ -12,7 +12,8 @@
12
12
 
13
13
  const Bar = require('./Bar');
14
14
  const Foo = require('./Foo');
15
- // $FlowFixMe: Flow doesn't understand TypeScript
15
+ // $FlowFixMe[untyped-import]: Flow doesn't understand TypeScript
16
+ // $FlowFixMe[cannot-resolve-module]: Flow doesn't understand TypeScript
16
17
  const TypeScript = require('./TypeScript');
17
18
 
18
19
  Object.keys({...Bar});
@@ -2,10 +2,6 @@
2
2
 
3
3
  var _doesNotExist = _interopRequireDefault(require("./does-not-exist"));
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
  }
11
7
  global.x = _doesNotExist.default;
@@ -2,10 +2,6 @@
2
2
 
3
3
  var _doesNotExist = _interopRequireDefault(require("./does-not-exist"));
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
  }
11
7
  global.x = _doesNotExist.default;
@@ -25,16 +25,12 @@ var _export = _interopRequireWildcard(require("./export-1"));
25
25
  var importStar = _interopRequireWildcard(require("./export-2"));
26
26
  var _exportNull = require("./export-null");
27
27
  var _exportPrimitiveDefault = _interopRequireWildcard(
28
- require("./export-primitive-default")
28
+ require("./export-primitive-default"),
29
29
  );
30
30
  var _export3 = _interopRequireDefault(require("./export-3"));
31
31
  var _export4 = require("./export-4");
32
32
  function _interopRequireDefault(e) {
33
- return e && e.__esModule
34
- ? e
35
- : {
36
- default: e,
37
- };
33
+ return e && e.__esModule ? e : { default: e };
38
34
  }
39
35
  function _getRequireWildcardCache(e) {
40
36
  if ("function" != typeof WeakMap) return null;
@@ -47,21 +43,17 @@ function _getRequireWildcardCache(e) {
47
43
  function _interopRequireWildcard(e, r) {
48
44
  if (!r && e && e.__esModule) return e;
49
45
  if (null === e || ("object" != typeof e && "function" != typeof e))
50
- return {
51
- default: e,
52
- };
46
+ return { default: e };
53
47
  var t = _getRequireWildcardCache(r);
54
48
  if (t && t.has(e)) return t.get(e);
55
- var n = {
56
- __proto__: null,
57
- },
49
+ var n = { __proto__: null },
58
50
  a = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
51
  for (var u in e)
60
52
  if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
61
53
  var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
62
54
  i && (i.get || i.set) ? Object.defineProperty(n, u, i) : (n[u] = e[u]);
63
55
  }
64
- return (n.default = e), t && t.set(e, n), n;
56
+ return ((n.default = e), t && t.set(e, n), n);
65
57
  }
66
58
  const extraData = (exports.extraData = {
67
59
  foo: _exportNull.foo,
@@ -4,8 +4,8 @@ var _utils = require("./utils");
4
4
  function main() {
5
5
  return (0, _utils.awaitProperties)(
6
6
  (0, _utils.copyContextToObject)(
7
- require.context("./subdir", undefined, undefined, "eager")
8
- )
7
+ require.context("./subdir", undefined, undefined, "eager"),
8
+ ),
9
9
  );
10
10
  }
11
11
  module.exports = main();
@@ -4,8 +4,8 @@ var _utils = require("./utils");
4
4
  function main() {
5
5
  return (0, _utils.awaitProperties)(
6
6
  (0, _utils.copyContextToObject)(
7
- require.context("./subdir", undefined, undefined, "lazy-once")
8
- )
7
+ require.context("./subdir", undefined, undefined, "lazy-once"),
8
+ ),
9
9
  );
10
10
  }
11
11
  module.exports = main();
@@ -4,8 +4,8 @@ var _utils = require("./utils");
4
4
  function main() {
5
5
  return (0, _utils.awaitProperties)(
6
6
  (0, _utils.copyContextToObject)(
7
- require.context("./subdir", undefined, undefined, "lazy")
8
- )
7
+ require.context("./subdir", undefined, undefined, "lazy"),
8
+ ),
9
9
  );
10
10
  }
11
11
  module.exports = main();
@@ -3,7 +3,7 @@
3
3
  var _utils = require("./utils");
4
4
  function main() {
5
5
  return (0, _utils.copyContextToObject)(
6
- require.context("./subdir", undefined, undefined, "sync")
6
+ require.context("./subdir", undefined, undefined, "sync"),
7
7
  );
8
8
  }
9
9
  module.exports = main();
@@ -13,6 +13,6 @@ function awaitProperties(obj) {
13
13
  return Promise.all(
14
14
  Object.keys(obj).map((key) => {
15
15
  return obj[key].then((value) => (result[key] = value));
16
- })
16
+ }),
17
17
  ).then(() => result);
18
18
  }
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
- const vm = require("vm");
3
+ var _vm = _interopRequireDefault(require("vm"));
4
+ function _interopRequireDefault(e) {
5
+ return e && e.__esModule ? e : { default: e };
6
+ }
4
7
  module.exports = function execBundle(code, context = {}) {
5
- if (vm.isContext(context)) {
6
- return vm.runInContext(code, context);
8
+ if (_vm.default.isContext(context)) {
9
+ return _vm.default.runInContext(code, context);
7
10
  }
8
- return vm.runInNewContext(code, context);
11
+ return _vm.default.runInNewContext(code, context);
9
12
  };
@@ -9,9 +9,7 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
- const vm = require('vm');
12
+ import vm from 'vm';
15
13
 
16
14
  module.exports = function execBundle(code: string, context: any = {}): mixed {
17
15
  if (vm.isContext(context)) {
@@ -20,10 +20,10 @@ module.exports = {
20
20
  transformer: {
21
21
  assetRegistryPath: path.join(ROOT_PATH, "AssetRegistry"),
22
22
  asyncRequireModulePath: require.resolve(
23
- "metro-runtime/src/modules/asyncRequire"
23
+ "metro-runtime/src/modules/asyncRequire",
24
24
  ),
25
25
  babelTransformerPath: require.resolve(
26
- "@react-native/metro-babel-transformer"
26
+ "@react-native/metro-babel-transformer",
27
27
  ),
28
28
  enableBabelRCLookup: false,
29
29
  enableBabelRuntime: false,
@@ -31,7 +31,7 @@ module.exports = {
31
31
  transform: {
32
32
  experimentalImportSupport: true,
33
33
  inlineRequires: entryFiles.some((filePath) =>
34
- filePath.includes("inline-requires")
34
+ filePath.includes("inline-requires"),
35
35
  ),
36
36
  },
37
37
  preloadedModules: false,
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
 
3
- const invariant = require("invariant");
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = void 0;
7
+ var _invariant = _interopRequireDefault(require("invariant"));
8
+ function _interopRequireDefault(e) {
9
+ return e && e.__esModule ? e : { default: e };
10
+ }
4
11
  class BatchProcessor {
5
12
  constructor(options, processBatch) {
6
13
  this._options = options;
@@ -14,7 +21,10 @@ class BatchProcessor {
14
21
  this._processQueueOnceReady();
15
22
  }
16
23
  _onBatchResults(jobs, results) {
17
- invariant(results.length === jobs.length, "Not enough results returned.");
24
+ (0, _invariant.default)(
25
+ results.length === jobs.length,
26
+ "Not enough results returned.",
27
+ );
18
28
  for (let i = 0; i < jobs.length; ++i) {
19
29
  jobs[i].resolve(results[i]);
20
30
  }
@@ -34,7 +44,7 @@ class BatchProcessor {
34
44
  const jobs = this._queue.splice(0, this._options.maximumItems);
35
45
  this._processBatch(jobs.map((job) => job.item)).then(
36
46
  (results) => this._onBatchResults(jobs, results),
37
- (error) => this._onBatchError(jobs, error)
47
+ (error) => this._onBatchError(jobs, error),
38
48
  );
39
49
  }
40
50
  }
@@ -47,7 +57,7 @@ class BatchProcessor {
47
57
  if (this._timeoutHandle == null) {
48
58
  this._timeoutHandle = setTimeout(
49
59
  () => this._processQueue(),
50
- this._options.maximumDelayMs
60
+ this._options.maximumDelayMs,
51
61
  );
52
62
  }
53
63
  }
@@ -65,4 +75,4 @@ class BatchProcessor {
65
75
  return this._queue.length;
66
76
  }
67
77
  }
68
- module.exports = BatchProcessor;
78
+ exports.default = BatchProcessor;
@@ -9,9 +9,7 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
- const invariant = require('invariant');
12
+ import invariant from 'invariant';
15
13
 
16
14
  type ProcessBatch<TItem, TResult> = (
17
15
  batch: Array<TItem>,
@@ -38,7 +36,7 @@ type QueueItem<TItem, TResult> = {
38
36
  * if we have many items pending in a short amount of time, we can start
39
37
  * processing right away.
40
38
  */
41
- class BatchProcessor<TItem, TResult> {
39
+ export default class BatchProcessor<TItem, TResult> {
42
40
  _currentProcessCount: number;
43
41
  _options: BatchProcessorOptions;
44
42
  _processBatch: ProcessBatch<TItem, TResult>;
@@ -124,5 +122,3 @@ class BatchProcessor<TItem, TResult> {
124
122
  return this._queue.length;
125
123
  }
126
124
  }
127
-
128
- module.exports = BatchProcessor;
@@ -81,7 +81,7 @@ export default class CountingSet<T> implements ReadOnlyCountingSet<T> {
81
81
  }
82
82
 
83
83
  // Iterate over unique entries
84
- // $FlowIssue[unsupported-syntax]
84
+ // $FlowFixMe[unsupported-syntax]
85
85
  [Symbol.iterator](): Iterator<T> {
86
86
  return this.values();
87
87
  }
@@ -94,7 +94,7 @@ export default class CountingSet<T> implements ReadOnlyCountingSet<T> {
94
94
  */
95
95
 
96
96
  // Number of unique entries
97
- // $FlowIssue[unsafe-getters-setters]
97
+ // $FlowFixMe[unsafe-getters-setters]
98
98
  get size(): number {
99
99
  return this.#map.size;
100
100
  }
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = void 0;
3
7
  class JsonReporter {
4
8
  constructor(stream) {
5
9
  this._stream = stream;
@@ -16,6 +20,7 @@ class JsonReporter {
16
20
  this._stream.write(JSON.stringify(event) + "\n");
17
21
  }
18
22
  }
23
+ exports.default = JsonReporter;
19
24
  function serializeError(e, seen = new Set()) {
20
25
  if (seen.has(e)) {
21
26
  return {
@@ -32,7 +37,7 @@ function serializeError(e, seen = new Set()) {
32
37
  if (e instanceof AggregateError) {
33
38
  serialized.errors = [...e.errors]
34
39
  .map((innerError) =>
35
- innerError instanceof Error ? serializeError(innerError, seen) : null
40
+ innerError instanceof Error ? serializeError(innerError, seen) : null,
36
41
  )
37
42
  .filter(Boolean);
38
43
  }
@@ -41,4 +46,3 @@ function serializeError(e, seen = new Set()) {
41
46
  }
42
47
  return serialized;
43
48
  }
44
- module.exports = JsonReporter;
@@ -9,8 +9,6 @@
9
9
  * @oncall react_native
10
10
  */
11
11
 
12
- 'use strict';
13
-
14
12
  import type {Writable} from 'stream';
15
13
 
16
14
  export type SerializedError = {
@@ -32,7 +30,7 @@ export type SerializedEvent<TEvent: {[string]: any, ...}> = TEvent extends {
32
30
  }
33
31
  : TEvent;
34
32
 
35
- class JsonReporter<TEvent: {[string]: any, ...}> {
33
+ export default class JsonReporter<TEvent: {[string]: any, ...}> {
36
34
  _stream: Writable;
37
35
 
38
36
  constructor(stream: Writable) {
@@ -82,5 +80,3 @@ function serializeError(
82
80
  }
83
81
  return serialized;
84
82
  }
85
-
86
- module.exports = JsonReporter;
@@ -1,12 +1,21 @@
1
1
  "use strict";
2
2
 
3
- const MAGIC_NUMBER = require("../shared/output/RamBundle/magic-number");
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+ exports.default = void 0;
7
+ var _magicNumber = _interopRequireDefault(
8
+ require("../shared/output/RamBundle/magic-number"),
9
+ );
10
+ function _interopRequireDefault(e) {
11
+ return e && e.__esModule ? e : { default: e };
12
+ }
4
13
  const SIZEOF_UINT32 = 4;
5
14
  const HEADER_SIZE = 3;
6
15
  class RamBundleParser {
7
16
  constructor(buffer) {
8
17
  this._buffer = buffer;
9
- if (this._readPosition(0) !== MAGIC_NUMBER) {
18
+ if (this._readPosition(0) !== _magicNumber.default) {
10
19
  throw new Error("File is not a RAM bundle file");
11
20
  }
12
21
  this._numModules = this._readPosition(1);
@@ -29,4 +38,4 @@ class RamBundleParser {
29
38
  return this._buffer.toString("utf8", start, end);
30
39
  }
31
40
  }
32
- module.exports = RamBundleParser;
41
+ exports.default = RamBundleParser;
@@ -8,9 +8,7 @@
8
8
  * @flow strict
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
- const MAGIC_NUMBER = require('../shared/output/RamBundle/magic-number');
11
+ import MAGIC_NUMBER from '../shared/output/RamBundle/magic-number';
14
12
 
15
13
  const SIZEOF_UINT32 = 4;
16
14
  const HEADER_SIZE = 3;
@@ -24,7 +22,7 @@ const HEADER_SIZE = 3;
24
22
  * getStartupCode(): returns the runtime and the startup code of the bundle.
25
23
  * getModule(): returns the code for the specified module.
26
24
  */
27
- class RamBundleParser {
25
+ export default class RamBundleParser {
28
26
  _buffer: Buffer;
29
27
  _numModules: number;
30
28
  _startupCodeLength: number;
@@ -66,5 +64,3 @@ class RamBundleParser {
66
64
  return this._buffer.toString('utf8', start, end);
67
65
  }
68
66
  }
69
-
70
- module.exports = RamBundleParser;