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
@@ -16,12 +16,14 @@ import type {
16
16
  import type {ResolverInputOptions} from '../shared/types';
17
17
  import type Package from './Package';
18
18
  import type {ConfigT} from 'metro-config';
19
- import type MetroFileMap, {
19
+ import type {
20
20
  ChangeEvent,
21
+ DependencyPlugin,
21
22
  FileSystem,
22
23
  HasteMap,
23
24
  HealthCheckResult,
24
25
  WatcherStatus,
26
+ default as MetroFileMap,
25
27
  } from 'metro-file-map';
26
28
  import type {FileSystemLookup} from 'metro-resolver';
27
29
 
@@ -63,6 +65,7 @@ export default class DependencyGraph extends EventEmitter {
63
65
  _fileSystem: FileSystem;
64
66
  #packageCache: PackageCache;
65
67
  _hasteMap: HasteMap;
68
+ #dependencyPlugin: ?DependencyPlugin;
66
69
  _moduleResolver: ModuleResolver<Package>;
67
70
  _resolutionCache: Map<
68
71
  // Custom resolver options
@@ -103,7 +106,7 @@ export default class DependencyGraph extends EventEmitter {
103
106
  type: 'dep_graph_loading',
104
107
  hasReducedPerformance: !!hasReducedPerformance,
105
108
  });
106
- const fileMap = createFileMap(config, {
109
+ const {fileMap, hasteMap, dependencyPlugin} = createFileMap(config, {
107
110
  throwOnModuleCollision: false,
108
111
  watch,
109
112
  });
@@ -115,25 +118,22 @@ export default class DependencyGraph extends EventEmitter {
115
118
  this._haste = fileMap;
116
119
  this._haste.on('status', status => this._onWatcherStatus(status));
117
120
 
118
- this._initializedPromise = fileMap
119
- .build()
120
- .then(({fileSystem, hasteMap}) => {
121
- log(createActionEndEntry(initializingMetroLogEntry));
122
- config.reporter.update({type: 'dep_graph_loaded'});
123
-
124
- this._fileSystem = fileSystem;
125
- this._hasteMap = hasteMap;
126
-
127
- this._haste.on('change', changeEvent =>
128
- this._onHasteChange(changeEvent),
129
- );
130
- this._haste.on('healthCheck', result =>
131
- this._onWatcherHealthCheck(result),
132
- );
133
- this._resolutionCache = new Map();
134
- this.#packageCache = this._createPackageCache();
135
- this._createModuleResolver();
136
- });
121
+ this._initializedPromise = fileMap.build().then(({fileSystem}) => {
122
+ log(createActionEndEntry(initializingMetroLogEntry));
123
+ config.reporter.update({type: 'dep_graph_loaded'});
124
+
125
+ this._fileSystem = fileSystem;
126
+ this._hasteMap = hasteMap;
127
+ this.#dependencyPlugin = dependencyPlugin;
128
+
129
+ this._haste.on('change', changeEvent => this._onHasteChange(changeEvent));
130
+ this._haste.on('healthCheck', result =>
131
+ this._onWatcherHealthCheck(result),
132
+ );
133
+ this._resolutionCache = new Map();
134
+ this.#packageCache = this._createPackageCache();
135
+ this._createModuleResolver();
136
+ });
137
137
  }
138
138
 
139
139
  _onWatcherHealthCheck(result: HealthCheckResult) {
@@ -150,17 +150,6 @@ export default class DependencyGraph extends EventEmitter {
150
150
  await this._initializedPromise;
151
151
  }
152
152
 
153
- // Creates the dependency graph and waits for it to become ready.
154
- // @deprecated Use the constructor + ready() directly.
155
- static async load(
156
- config: ConfigT,
157
- options?: {+hasReducedPerformance?: boolean, +watch?: boolean},
158
- ): Promise<DependencyGraph> {
159
- const self = new DependencyGraph(config, options);
160
- await self.ready();
161
- return self;
162
- }
163
-
164
153
  _onHasteChange({eventsQueue}: ChangeEvent) {
165
154
  this._resolutionCache = new Map();
166
155
  eventsQueue.forEach(({filePath}) =>
@@ -193,7 +182,7 @@ export default class DependencyGraph extends EventEmitter {
193
182
  },
194
183
  disableHierarchicalLookup:
195
184
  this._config.resolver.disableHierarchicalLookup,
196
- doesFileExist: this._doesFileExist,
185
+ doesFileExist: this.doesFileExist,
197
186
  emptyModulePath: this._config.resolver.emptyModulePath,
198
187
  extraNodeModules: this._config.resolver.extraNodeModules,
199
188
  fileSystemLookup,
@@ -227,6 +216,8 @@ export default class DependencyGraph extends EventEmitter {
227
216
  this._config.resolver.unstable_conditionsByPlatform,
228
217
  unstable_enablePackageExports:
229
218
  this._config.resolver.unstable_enablePackageExports,
219
+ unstable_incrementalResolution:
220
+ this._config.resolver.unstable_incrementalResolution,
230
221
  });
231
222
  }
232
223
 
@@ -290,7 +281,7 @@ export default class DependencyGraph extends EventEmitter {
290
281
  /** Given a search context, return a list of file paths matching the query. */
291
282
  matchFilesWithContext(
292
283
  from: string,
293
- context: $ReadOnly<{
284
+ context: Readonly<{
294
285
  /* Should search for files recursively. */
295
286
  recursive: boolean,
296
287
  /* Filter relative paths against a pattern. */
@@ -376,12 +367,12 @@ export default class DependencyGraph extends EventEmitter {
376
367
  return resolution;
377
368
  }
378
369
 
379
- _doesFileExist = (filePath: string): boolean => {
370
+ doesFileExist = (filePath: string): boolean => {
380
371
  return this._fileSystem.exists(filePath);
381
372
  };
382
373
 
383
374
  getHasteName(filePath: string): string {
384
- const hasteName = this._fileSystem.getModuleName(filePath);
375
+ const hasteName = this._hasteMap.getModuleNameByPath(filePath);
385
376
 
386
377
  if (hasteName) {
387
378
  return hasteName;
@@ -391,6 +382,13 @@ export default class DependencyGraph extends EventEmitter {
391
382
  }
392
383
 
393
384
  getDependencies(filePath: string): Array<string> {
394
- return nullthrows(this._fileSystem.getDependencies(filePath));
385
+ if (!this.#dependencyPlugin) {
386
+ throw new Error(
387
+ 'getDependencies called but extractDependencies is false',
388
+ );
389
+ }
390
+ return Array.from(
391
+ nullthrows(this.#dependencyPlugin.getDependencies(filePath)),
392
+ );
395
393
  }
396
394
  }
@@ -7,7 +7,11 @@ exports.default = void 0;
7
7
  var _fs = _interopRequireDefault(require("fs"));
8
8
  var _path = _interopRequireDefault(require("path"));
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
  class Package {
13
17
  constructor({ file }) {
@@ -6,7 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.PackageCache = void 0;
7
7
  var _Package = _interopRequireDefault(require("./Package"));
8
8
  function _interopRequireDefault(e) {
9
- return e && e.__esModule ? e : { default: e };
9
+ return e && e.__esModule
10
+ ? e
11
+ : {
12
+ default: e,
13
+ };
10
14
  }
11
15
  class PackageCache {
12
16
  constructor(options) {
@@ -10,7 +10,11 @@ var _parsePlatformFilePath = _interopRequireDefault(
10
10
  );
11
11
  var _path = _interopRequireDefault(require("path"));
12
12
  function _interopRequireDefault(e) {
13
- return e && e.__esModule ? e : { default: e };
13
+ return e && e.__esModule
14
+ ? e
15
+ : {
16
+ default: e,
17
+ };
14
18
  }
15
19
  const ASSET_BASE_NAME_RE = /(.+?)(@([\d.]+)x)?$/;
16
20
  function parseBaseName(baseName) {
@@ -23,14 +27,14 @@ function parseBaseName(baseName) {
23
27
  const resolution = parseFloat(match[3]);
24
28
  if (!Number.isNaN(resolution)) {
25
29
  return {
26
- rootName,
27
30
  resolution,
31
+ rootName,
28
32
  };
29
33
  }
30
34
  }
31
35
  return {
32
- rootName,
33
36
  resolution: 1,
37
+ rootName,
34
38
  };
35
39
  }
36
40
  function tryParse(filePath, platforms) {
@@ -35,10 +35,10 @@ function parseBaseName(baseName: string): {
35
35
  if (match[3] != null) {
36
36
  const resolution = parseFloat(match[3]);
37
37
  if (!Number.isNaN(resolution)) {
38
- return {rootName, resolution};
38
+ return {resolution, rootName};
39
39
  }
40
40
  }
41
- return {rootName, resolution: 1};
41
+ return {resolution: 1, rootName};
42
42
  }
43
43
 
44
44
  /**
@@ -47,7 +47,7 @@ function parseBaseName(baseName: string): {
47
47
  */
48
48
  export function tryParse(
49
49
  filePath: string,
50
- platforms: $ReadOnlySet<string>,
50
+ platforms: ReadonlySet<string>,
51
51
  ): ?AssetPath {
52
52
  const result = parsePlatformFilePath(filePath, platforms);
53
53
  const {dirPath, baseName, platform, extension} = result;
@@ -66,7 +66,7 @@ export function tryParse(
66
66
 
67
67
  export function parse(
68
68
  filePath: string,
69
- platforms: $ReadOnlySet<string>,
69
+ platforms: ReadonlySet<string>,
70
70
  ): AssetPath {
71
71
  const result = tryParse(filePath, platforms);
72
72
  if (result == null) {
@@ -6,7 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = parsePlatformFilePath;
7
7
  var _path = _interopRequireDefault(require("path"));
8
8
  function _interopRequireDefault(e) {
9
- return e && e.__esModule ? e : { default: e };
9
+ return e && e.__esModule
10
+ ? e
11
+ : {
12
+ default: e,
13
+ };
10
14
  }
11
15
  const PATH_RE = /^(.+?)(\.([^.]+))?\.([^.]+)$/;
12
16
  function parsePlatformFilePath(filePath, platforms) {
@@ -15,27 +19,27 @@ function parsePlatformFilePath(filePath, platforms) {
15
19
  const match = fileName.match(PATH_RE);
16
20
  if (!match) {
17
21
  return {
18
- dirPath,
19
22
  baseName: fileName,
20
- platform: null,
23
+ dirPath,
21
24
  extension: null,
25
+ platform: null,
22
26
  };
23
27
  }
24
28
  const extension = match[4] || null;
25
29
  const platform = match[3] || null;
26
30
  if (platform == null || platforms.has(platform)) {
27
31
  return {
28
- dirPath,
29
32
  baseName: match[1],
30
- platform,
33
+ dirPath,
31
34
  extension,
35
+ platform,
32
36
  };
33
37
  }
34
38
  const baseName = `${match[1]}.${platform}`;
35
39
  return {
36
- dirPath,
37
40
  baseName,
38
- platform: null,
41
+ dirPath,
39
42
  extension,
43
+ platform: null,
40
44
  };
41
45
  }
@@ -26,19 +26,19 @@ const PATH_RE = /^(.+?)(\.([^.]+))?\.([^.]+)$/;
26
26
  */
27
27
  export default function parsePlatformFilePath(
28
28
  filePath: string,
29
- platforms: $ReadOnlySet<string>,
29
+ platforms: ReadonlySet<string>,
30
30
  ): PlatformFilePathParts {
31
31
  const dirPath = path.dirname(filePath);
32
32
  const fileName = path.basename(filePath);
33
33
  const match = fileName.match(PATH_RE);
34
34
  if (!match) {
35
- return {dirPath, baseName: fileName, platform: null, extension: null};
35
+ return {baseName: fileName, dirPath, extension: null, platform: null};
36
36
  }
37
37
  const extension = match[4] || null;
38
38
  const platform = match[3] || null;
39
39
  if (platform == null || platforms.has(platform)) {
40
- return {dirPath, baseName: match[1], platform, extension};
40
+ return {baseName: match[1], dirPath, extension, platform};
41
41
  }
42
42
  const baseName = `${match[1]}.${platform}`;
43
- return {dirPath, baseName, platform: null, extension};
43
+ return {baseName, dirPath, extension, platform: null};
44
44
  }
@@ -17,7 +17,11 @@ var _writeSourcemap = _interopRequireDefault(require("./write-sourcemap"));
17
17
  var _fs = require("fs");
18
18
  var _path = _interopRequireDefault(require("path"));
19
19
  function _interopRequireDefault(e) {
20
- return e && e.__esModule ? e : { default: e };
20
+ return e && e.__esModule
21
+ ? e
22
+ : {
23
+ default: e,
24
+ };
21
25
  }
22
26
  const MAGIC_RAM_BUNDLE_FILENAME = "UNBUNDLE";
23
27
  const MODULES_DIR = "js-modules";
@@ -37,7 +37,7 @@ export default function saveAsAssets(
37
37
  bundle: RamBundleInfo,
38
38
  options: OutputOptions,
39
39
  log: (...args: Array<string>) => void,
40
- ): Promise<mixed> {
40
+ ): Promise<unknown> {
41
41
  const {
42
42
  bundleOutput,
43
43
  bundleEncoding: encoding,
@@ -100,24 +100,24 @@ function writeModuleFile(
100
100
  module: ModuleTransportLike,
101
101
  modulesDir: string,
102
102
  encoding: void | 'ascii' | 'utf16le' | 'utf8',
103
- ): Promise<mixed> {
103
+ ): Promise<unknown> {
104
104
  const {code, id} = module;
105
105
  return writeFile(path.join(modulesDir, id + '.js'), code, encoding);
106
106
  }
107
107
 
108
108
  function writeModules(
109
- modules: $ReadOnlyArray<ModuleTransportLike>,
109
+ modules: ReadonlyArray<ModuleTransportLike>,
110
110
  modulesDir: string,
111
111
  encoding: void | 'ascii' | 'utf16le' | 'utf8',
112
- ): Promise<Array<mixed>> {
112
+ ): Promise<Array<unknown>> {
113
113
  const writeFiles = modules.map(
114
- (module: ModuleTransportLike): Promise<mixed> =>
114
+ (module: ModuleTransportLike): Promise<unknown> =>
115
115
  writeModuleFile(module, modulesDir, encoding),
116
116
  );
117
117
  return Promise.all(writeFiles);
118
118
  }
119
119
 
120
- function writeMagicFlagFile(outputDir: string): Promise<mixed> {
120
+ function writeMagicFlagFile(outputDir: string): Promise<unknown> {
121
121
  const buffer = Buffer.alloc(4);
122
122
  buffer.writeUInt32LE(MAGIC_RAM_BUNDLE_NUMBER, 0);
123
123
  return writeFile(path.join(outputDir, MAGIC_RAM_BUNDLE_FILENAME), buffer);
@@ -17,7 +17,11 @@ var _util = require("./util");
17
17
  var _writeSourcemap = _interopRequireDefault(require("./write-sourcemap"));
18
18
  var _fs = _interopRequireDefault(require("fs"));
19
19
  function _interopRequireDefault(e) {
20
- return e && e.__esModule ? e : { default: e };
20
+ return e && e.__esModule
21
+ ? e
22
+ : {
23
+ default: e,
24
+ };
21
25
  }
22
26
  const SIZEOF_UINT32 = 4;
23
27
  function save(bundle, options, log) {
@@ -37,7 +37,7 @@ export function save(
37
37
  bundle: RamBundleInfo,
38
38
  options: OutputOptions,
39
39
  log: (...args: Array<string>) => void,
40
- ): Promise<mixed> {
40
+ ): Promise<unknown> {
41
41
  const {
42
42
  bundleOutput,
43
43
  bundleEncoding: encoding,
@@ -96,7 +96,7 @@ function writeBuffers(
96
96
  buffers: Array<Buffer>,
97
97
  ): Promise<void> {
98
98
  buffers.forEach((buffer: Buffer) => stream.write(buffer));
99
- return new Promise((resolve: () => void, reject: mixed => mixed) => {
99
+ return new Promise((resolve: () => void, reject: unknown => unknown) => {
100
100
  stream.on('error', reject);
101
101
  stream.on('finish', () => resolve());
102
102
  stream.end();
@@ -196,7 +196,7 @@ function groupCode(
196
196
  }
197
197
 
198
198
  function buildModuleBuffers(
199
- modules: $ReadOnlyArray<ModuleTransportLike>,
199
+ modules: ReadonlyArray<ModuleTransportLike>,
200
200
  moduleGroups: ModuleGroups,
201
201
  encoding: void | 'ascii' | 'utf16le' | 'utf8',
202
202
  ): Array<{
@@ -217,7 +217,7 @@ function buildModuleBuffers(
217
217
 
218
218
  export function buildTableAndContents(
219
219
  startupCode: string,
220
- modules: $ReadOnlyArray<ModuleTransportLike>,
220
+ modules: ReadonlyArray<ModuleTransportLike>,
221
221
  moduleGroups: ModuleGroups,
222
222
  encoding?: 'utf8' | 'utf16le' | 'ascii',
223
223
  ): Array<Buffer> {
@@ -242,7 +242,7 @@ export function buildTableAndContents(
242
242
 
243
243
  export function createModuleGroups(
244
244
  groups: Map<number, Set<number>>,
245
- modules: $ReadOnlyArray<ModuleTransportLike>,
245
+ modules: ReadonlyArray<ModuleTransportLike>,
246
246
  ): ModuleGroups {
247
247
  return {
248
248
  groups,
@@ -20,17 +20,17 @@ import {
20
20
 
21
21
  type Params = {
22
22
  fixWrapperOffset: boolean,
23
- lazyModules: $ReadOnlyArray<ModuleTransportLike>,
23
+ lazyModules: ReadonlyArray<ModuleTransportLike>,
24
24
  moduleGroups: ?ModuleGroups,
25
- startupModules: $ReadOnlyArray<ModuleTransportLike>,
25
+ startupModules: ReadonlyArray<ModuleTransportLike>,
26
26
  };
27
27
 
28
- export default (({
28
+ export default ({
29
29
  fixWrapperOffset,
30
30
  lazyModules,
31
31
  moduleGroups,
32
32
  startupModules,
33
- }: Params) => {
33
+ }: Params): IndexMap => {
34
34
  const options = fixWrapperOffset ? {fixWrapperOffset: true} : undefined;
35
35
  const startupModule: ModuleTransportLike = {
36
36
  code: joinModules(startupModules),
@@ -59,4 +59,4 @@ export default (({
59
59
  }
60
60
 
61
61
  return map;
62
- }: Params => IndexMap);
62
+ };
@@ -16,7 +16,11 @@ exports.lineToLineSourceMap = lineToLineSourceMap;
16
16
  var _countLines = _interopRequireDefault(require("../../../lib/countLines"));
17
17
  var _invariant = _interopRequireDefault(require("invariant"));
18
18
  function _interopRequireDefault(e) {
19
- return e && e.__esModule ? e : { default: e };
19
+ return e && e.__esModule
20
+ ? e
21
+ : {
22
+ default: e,
23
+ };
20
24
  }
21
25
  function lineToLineSourceMap(source, filename = "") {
22
26
  const firstLine = "AAAA;";
@@ -50,7 +50,7 @@ const Section = (line: number, column: number, map: MixedSourceMap) => ({
50
50
  type CombineOptions = {fixWrapperOffset: boolean, ...};
51
51
 
52
52
  function combineSourceMaps(
53
- modules: $ReadOnlyArray<ModuleTransportLike>,
53
+ modules: ReadonlyArray<ModuleTransportLike>,
54
54
  moduleGroups?: ModuleGroups,
55
55
  options?: ?CombineOptions,
56
56
  ): IndexMap {
@@ -59,7 +59,7 @@ function combineSourceMaps(
59
59
  }
60
60
 
61
61
  function combineSourceMapsAddingOffsets(
62
- modules: $ReadOnlyArray<ModuleTransportLike>,
62
+ modules: ReadonlyArray<ModuleTransportLike>,
63
63
  x_metro_module_paths: Array<string>,
64
64
  moduleGroups?: ?ModuleGroups,
65
65
  options?: ?CombineOptions,
@@ -75,7 +75,7 @@ function combineSourceMapsAddingOffsets(
75
75
  }
76
76
 
77
77
  function combineMaps(
78
- modules: $ReadOnlyArray<ModuleTransportLike>,
78
+ modules: ReadonlyArray<ModuleTransportLike>,
79
79
  offsets: ?Array<number>,
80
80
  moduleGroups: ?ModuleGroups,
81
81
  options: ?CombineOptions,
@@ -99,7 +99,7 @@ function combineMaps(
99
99
  group = moduleGroups && moduleGroups.groups.get(id);
100
100
  if (group && moduleGroups) {
101
101
  const {modulesById} = moduleGroups;
102
- const otherModules: $ReadOnlyArray<ModuleTransportLike> = Array.from(
102
+ const otherModules: ReadonlyArray<ModuleTransportLike> = Array.from(
103
103
  group || [],
104
104
  )
105
105
  .map((moduleId: number) => modulesById.get(moduleId))
@@ -135,7 +135,7 @@ function combineMaps(
135
135
  return sections;
136
136
  }
137
137
 
138
- const joinModules = (modules: $ReadOnlyArray<{+code: string, ...}>): string =>
138
+ const joinModules = (modules: ReadonlyArray<{+code: string, ...}>): string =>
139
139
  modules.map((m: {+code: string, ...}) => m.code).join('\n');
140
140
 
141
141
  export {
@@ -6,7 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = writeSourcemap;
7
7
  var _writeFile = _interopRequireDefault(require("../writeFile"));
8
8
  function _interopRequireDefault(e) {
9
- return e && e.__esModule ? e : { default: e };
9
+ return e && e.__esModule
10
+ ? e
11
+ : {
12
+ default: e,
13
+ };
10
14
  }
11
15
  function writeSourcemap(fileName, contents, log) {
12
16
  if (!fileName) {
@@ -15,7 +15,7 @@ export default function writeSourcemap(
15
15
  fileName: string,
16
16
  contents: string,
17
17
  log: (...args: Array<string>) => void,
18
- ): Promise<mixed> {
18
+ ): Promise<unknown> {
19
19
  if (!fileName) {
20
20
  return Promise.resolve();
21
21
  }
@@ -10,7 +10,11 @@ var _Server = _interopRequireDefault(require("../../Server"));
10
10
  var _asAssets = _interopRequireDefault(require("./RamBundle/as-assets"));
11
11
  var _asIndexedFile = require("./RamBundle/as-indexed-file");
12
12
  function _interopRequireDefault(e) {
13
- return e && e.__esModule ? e : { default: e };
13
+ return e && e.__esModule
14
+ ? e
15
+ : {
16
+ default: e,
17
+ };
14
18
  }
15
19
  async function build(packagerClient, requestOptions) {
16
20
  const options = {
@@ -33,7 +33,7 @@ export function save(
33
33
  bundle: RamBundleInfo,
34
34
  options: OutputOptions,
35
35
  log: (x: string) => void,
36
- ): Promise<mixed> {
36
+ ): Promise<unknown> {
37
37
  // We fork here depending on the platform: while Android is pretty good at
38
38
  // loading individual assets, iOS has a large overhead when reading hundreds
39
39
  // of assets from disk.
@@ -12,7 +12,11 @@ var _relativizeSourceMap = _interopRequireDefault(
12
12
  var _Server = _interopRequireDefault(require("../../Server"));
13
13
  var _writeFile = _interopRequireDefault(require("./writeFile"));
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
  const DEFAULTS = _Server.default.DEFAULT_BUNDLE_OPTIONS;
18
22
  function build(packagerClient, requestOptions, buildOptions = {}) {
@@ -26,7 +26,7 @@ export function build(
26
26
  ): Promise<{
27
27
  code: string,
28
28
  map: string,
29
- assets?: $ReadOnlyArray<AssetData>,
29
+ assets?: ReadonlyArray<AssetData>,
30
30
  ...
31
31
  }> {
32
32
  return packagerClient.build(
@@ -69,7 +69,7 @@ export async function save(
69
69
  },
70
70
  options: OutputOptions,
71
71
  log: string => void,
72
- ): Promise<mixed> {
72
+ ): Promise<unknown> {
73
73
  const {
74
74
  bundleOutput,
75
75
  bundleEncoding: encoding,
@@ -101,7 +101,7 @@ export async function save(
101
101
  }
102
102
 
103
103
  // Wait until everything is written to disk.
104
- await Promise.all(writeFns.map((cb: void => mixed) => cb()));
104
+ await Promise.all(writeFns.map((cb: void => unknown) => cb()));
105
105
  }
106
106
 
107
107
  export const formatName = 'bundle';
@@ -3,10 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true,
5
5
  });
6
- exports.default = _default;
6
+ exports.default = meta;
7
7
  var _crypto = _interopRequireDefault(require("crypto"));
8
8
  function _interopRequireDefault(e) {
9
- return e && e.__esModule ? e : { default: e };
9
+ return e && e.__esModule
10
+ ? e
11
+ : {
12
+ default: e,
13
+ };
10
14
  }
11
15
  const isUTF8 = (encoding) => /^utf-?8$/i.test(encoding);
12
16
  const constantFor = (encoding) =>
@@ -17,7 +21,7 @@ const constantFor = (encoding) =>
17
21
  : /^(?:utf-?16(?:le)?|ucs-?2)$/.test(encoding)
18
22
  ? 3
19
23
  : 0;
20
- function _default(code, encoding = "utf8") {
24
+ function meta(code, encoding = "utf8") {
21
25
  const buffer = asBuffer(code, encoding);
22
26
  const hash = _crypto.default.createHash("sha1");
23
27
  hash.update(buffer);
@@ -23,7 +23,7 @@ const constantFor = (encoding: 'ascii' | 'utf16le' | 'utf8') =>
23
23
  ? 3
24
24
  : 0;
25
25
 
26
- export default function (
26
+ export default function meta(
27
27
  code: Buffer | string,
28
28
  encoding: 'ascii' | 'utf16le' | 'utf8' = 'utf8',
29
29
  ): Buffer {
@@ -3,11 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true,
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = writeFile;
7
7
  var _fs = _interopRequireDefault(require("fs"));
8
8
  var _throat = _interopRequireDefault(require("throat"));
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
+ };
15
+ }
16
+ const writeFileWithThroat = (0, _throat.default)(
17
+ 128,
18
+ _fs.default.promises.writeFile,
19
+ );
20
+ function writeFile(filePath, data, encoding) {
21
+ return writeFileWithThroat(filePath, data, encoding);
11
22
  }
12
- const writeFile = (0, _throat.default)(128, _fs.default.promises.writeFile);
13
- var _default = (exports.default = writeFile);