metro 0.63.0 → 0.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/package.json +22 -22
  2. package/src/Assets.js +8 -2
  3. package/src/Bundler/util.js +17 -10
  4. package/src/Bundler/util.js.flow +13 -12
  5. package/src/Bundler.js +4 -0
  6. package/src/DeltaBundler/DeltaCalculator.js +6 -1
  7. package/src/DeltaBundler/Serializers/baseBytecodeBundle.js +10 -0
  8. package/src/DeltaBundler/Serializers/baseJSBundle.js +5 -0
  9. package/src/DeltaBundler/Serializers/getAllFiles.js +6 -0
  10. package/src/DeltaBundler/Serializers/getAssets.js +4 -0
  11. package/src/DeltaBundler/Serializers/getRamBundleInfo.js +6 -0
  12. package/src/DeltaBundler/Serializers/helpers/bytecode.js +5 -0
  13. package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +5 -0
  14. package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +2 -0
  15. package/src/DeltaBundler/Serializers/helpers/processModules.js +2 -0
  16. package/src/DeltaBundler/Serializers/hmrJSBundle.js +8 -2
  17. package/src/DeltaBundler/Serializers/sourceMapGenerator.js +4 -0
  18. package/src/DeltaBundler/Serializers/sourceMapObject.js +4 -0
  19. package/src/DeltaBundler/Transformer.js +16 -0
  20. package/src/DeltaBundler/Worker.js +4 -0
  21. package/src/DeltaBundler/WorkerFarm.js +9 -0
  22. package/src/DeltaBundler/computeDelta.js +5 -0
  23. package/src/DeltaBundler/getTransformCacheKey.js +1 -1
  24. package/src/DeltaBundler/mergeDeltas.js +5 -0
  25. package/src/DeltaBundler/traverseDependencies.js +14 -0
  26. package/src/DeltaBundler.js +6 -1
  27. package/src/HmrServer.js +18 -0
  28. package/src/IncrementalBundler.js +16 -0
  29. package/src/ModuleGraph/node-haste/Package.js +5 -0
  30. package/src/ModuleGraph/node-haste/node-haste.flow.js.flow +0 -2
  31. package/src/ModuleGraph/node-haste/node-haste.js +3 -0
  32. package/src/ModuleGraph/node-haste/node-haste.js.flow +4 -2
  33. package/src/ModuleGraph/output/indexed-ram-bundle.js +10 -0
  34. package/src/ModuleGraph/output/multiple-files-ram-bundle.js +10 -0
  35. package/src/ModuleGraph/output/reverse-dependency-map-references.js +33 -9
  36. package/src/ModuleGraph/output/reverse-dependency-map-references.js.flow +28 -13
  37. package/src/ModuleGraph/output/util.js +59 -25
  38. package/src/ModuleGraph/output/util.js.flow +59 -23
  39. package/src/ModuleGraph/test-helpers.js +74 -2
  40. package/src/ModuleGraph/types.flow.js.flow +13 -8
  41. package/src/ModuleGraph/worker/JsFileWrapping.js +90 -12
  42. package/src/ModuleGraph/worker/JsFileWrapping.js.flow +34 -20
  43. package/src/ModuleGraph/worker/collectDependencies.js +329 -205
  44. package/src/ModuleGraph/worker/collectDependencies.js.flow +397 -209
  45. package/src/ModuleGraph/worker/generate.js.flow +2 -2
  46. package/src/ModuleGraph/worker/generateImportNames.js +2 -1
  47. package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -4
  48. package/src/ModuleGraph/worker/mergeSourceMaps.js +5 -0
  49. package/src/Server/symbolicate.js +14 -0
  50. package/src/Server.js +16 -3
  51. package/src/Server.js.flow +1 -0
  52. package/src/cli-utils.js +4 -0
  53. package/src/cli.js +0 -0
  54. package/src/commands/build.js +10 -0
  55. package/src/commands/build.js.flow +2 -0
  56. package/src/commands/dependencies.js +4 -0
  57. package/src/commands/serve.js +5 -0
  58. package/src/commands/serve.js.flow +2 -0
  59. package/src/index.js +13 -1
  60. package/src/index.js.flow +2 -0
  61. package/src/integration_tests/basic_bundle/import-export/index.js +19 -2
  62. package/src/integration_tests/execBundle.js +2 -2
  63. package/src/integration_tests/metro.config.js +4 -0
  64. package/src/lib/BatchProcessor.js +1 -1
  65. package/src/lib/TerminalReporter.js +10 -0
  66. package/src/lib/attachWebsocketServer.js +5 -1
  67. package/src/lib/bundleToBytecode.js +7 -3
  68. package/src/lib/bundleToString.js +6 -1
  69. package/src/lib/debounceAsyncQueue.js +4 -0
  70. package/src/lib/getAppendScripts.js +2 -0
  71. package/src/lib/getPreludeCode.js +2 -0
  72. package/src/lib/getPrependedScripts.js +11 -0
  73. package/src/lib/logToConsole.js +1 -2
  74. package/src/lib/parseOptionsFromUrl.js +5 -0
  75. package/src/lib/reporting.js +1 -1
  76. package/src/lib/splitBundleOptions.js +1 -1
  77. package/src/lib/transformHelpers.js +19 -3
  78. package/src/lib/transformHelpers.js.flow +4 -4
  79. package/src/node-haste/DependencyGraph/ModuleResolution.js +10 -2
  80. package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +6 -5
  81. package/src/node-haste/DependencyGraph.js +11 -2
  82. package/src/node-haste/DependencyGraph.js.flow +5 -0
  83. package/src/node-haste/Package.js +2 -0
  84. package/src/shared/output/RamBundle/as-assets.js +1 -2
  85. package/src/shared/output/RamBundle/as-indexed-file.js +2 -0
  86. package/src/shared/output/RamBundle/util.js +2 -2
  87. package/src/shared/output/RamBundle.js +9 -0
  88. package/src/shared/output/bundle.js +9 -0
  89. package/src/ModuleGraph/worker/optimizeDependencies.js +0 -122
  90. package/src/ModuleGraph/worker/optimizeDependencies.js.flow +0 -128
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53
 
@@ -57,6 +59,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
57
59
  reject(error);
58
60
  return;
59
61
  }
62
+
60
63
  if (info.done) {
61
64
  resolve(value);
62
65
  } else {
@@ -70,12 +73,15 @@ function _asyncToGenerator(fn) {
70
73
  args = arguments;
71
74
  return new Promise(function(resolve, reject) {
72
75
  var gen = fn.apply(self, args);
76
+
73
77
  function _next(value) {
74
78
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
75
79
  }
80
+
76
81
  function _throw(err) {
77
82
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
78
83
  }
84
+
79
85
  _next(undefined);
80
86
  });
81
87
  };
@@ -92,6 +98,7 @@ function _defineProperty(obj, key, value) {
92
98
  } else {
93
99
  obj[key] = value;
94
100
  }
101
+
95
102
  return obj;
96
103
  }
97
104
 
@@ -145,6 +152,7 @@ function getOrCreate(map, field) {
145
152
  }
146
153
 
147
154
  class DependencyGraph extends EventEmitter {
155
+ // $FlowFixMe[value-as-type]
148
156
  constructor(_ref) {
149
157
  let config = _ref.config,
150
158
  haste = _ref.haste,
@@ -199,7 +207,7 @@ class DependencyGraph extends EventEmitter {
199
207
  }
200
208
 
201
209
  return ignorePattern;
202
- }
210
+ } // $FlowFixMe[value-as-type]
203
211
 
204
212
  static _createHaste(config, watch) {
205
213
  const haste = new JestHasteMap({
@@ -313,6 +321,7 @@ class DependencyGraph extends EventEmitter {
313
321
  mainFields: this._config.resolver.resolverMainFields,
314
322
  moduleCache: this._moduleCache,
315
323
  moduleMap: this._moduleMap,
324
+ nodeModulesPaths: this._config.resolver.nodeModulesPaths,
316
325
  preferNativePlatform: true,
317
326
  projectRoot: this._config.projectRoot,
318
327
  resolveAsset: (dirPath, assetName, extension) => {
@@ -364,7 +373,7 @@ class DependencyGraph extends EventEmitter {
364
373
  }
365
374
 
366
375
  return sha1;
367
- }
376
+ } // $FlowFixMe[value-as-type]
368
377
 
369
378
  getWatcher() {
370
379
  return this._haste;
@@ -51,6 +51,7 @@ function getOrCreate<T>(
51
51
  class DependencyGraph extends EventEmitter {
52
52
  _assetExtensions: Set<string>;
53
53
  _config: ConfigT;
54
+ // $FlowFixMe[value-as-type]
54
55
  _haste: JestHasteMap;
55
56
  _hasteFS: HasteFS;
56
57
  _moduleCache: ModuleCache;
@@ -65,6 +66,7 @@ class DependencyGraph extends EventEmitter {
65
66
  initialModuleMap,
66
67
  }: {|
67
68
  +config: ConfigT,
69
+ // $FlowFixMe[value-as-type]
68
70
  +haste: JestHasteMap,
69
71
  +initialHasteFS: HasteFS,
70
72
  +initialModuleMap: ModuleMap,
@@ -113,6 +115,7 @@ class DependencyGraph extends EventEmitter {
113
115
  return ignorePattern;
114
116
  }
115
117
 
118
+ // $FlowFixMe[value-as-type]
116
119
  static _createHaste(config: ConfigT, watch?: boolean): JestHasteMap {
117
120
  const haste = new JestHasteMap({
118
121
  cacheDirectory: config.hasteMapCacheDirectory,
@@ -212,6 +215,7 @@ class DependencyGraph extends EventEmitter {
212
215
  mainFields: this._config.resolver.resolverMainFields,
213
216
  moduleCache: this._moduleCache,
214
217
  moduleMap: this._moduleMap,
218
+ nodeModulesPaths: this._config.resolver.nodeModulesPaths,
215
219
  preferNativePlatform: true,
216
220
  projectRoot: this._config.projectRoot,
217
221
  resolveAsset: (dirPath: string, assetName: string, extension: string) => {
@@ -266,6 +270,7 @@ class DependencyGraph extends EventEmitter {
266
270
  return sha1;
267
271
  }
268
272
 
273
+ // $FlowFixMe[value-as-type]
269
274
  getWatcher(): JestHasteMap {
270
275
  return this._haste;
271
276
  }
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53
 
@@ -24,9 +24,8 @@ const writeFile = require("../writeFile");
24
24
  const writeSourceMap = require("./write-sourcemap");
25
25
 
26
26
  const _require = require("./util"),
27
- joinModules = _require.joinModules;
27
+ joinModules = _require.joinModules; // must not start with a dot, as that won't go into the apk
28
28
 
29
- // must not start with a dot, as that won't go into the apk
30
29
  const MAGIC_RAM_BUNDLE_FILENAME = "UNBUNDLE";
31
30
  const MODULES_DIR = "js-modules";
32
31
  /**
@@ -45,7 +45,9 @@ function _arrayWithoutHoles(arr) {
45
45
 
46
46
  function _arrayLikeToArray(arr, len) {
47
47
  if (len == null || len > arr.length) len = arr.length;
48
+
48
49
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
50
+
49
51
  return arr2;
50
52
  }
51
53
 
@@ -17,8 +17,8 @@ const countLines = string => (string.match(newline) || []).length + 1;
17
17
 
18
18
  function lineToLineSourceMap(source) {
19
19
  let filename =
20
- arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
21
- // The first line mapping in our package is the base64vlq code for zeros (A).
20
+ arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; // The first line mapping in our package is the base64vlq code for zeros (A).
21
+
22
22
  const firstLine = "AAAA;"; // Most other lines in our mappings are all zeros (for module, column etc)
23
23
  // except for the lineno mapping: curLineno - prevLineno = 1; Which is C.
24
24
 
@@ -11,6 +11,7 @@
11
11
 
12
12
  function ownKeys(object, enumerableOnly) {
13
13
  var keys = Object.keys(object);
14
+
14
15
  if (Object.getOwnPropertySymbols) {
15
16
  var symbols = Object.getOwnPropertySymbols(object);
16
17
  if (enumerableOnly)
@@ -19,12 +20,14 @@ function ownKeys(object, enumerableOnly) {
19
20
  });
20
21
  keys.push.apply(keys, symbols);
21
22
  }
23
+
22
24
  return keys;
23
25
  }
24
26
 
25
27
  function _objectSpread(target) {
26
28
  for (var i = 1; i < arguments.length; i++) {
27
29
  var source = arguments[i] != null ? arguments[i] : {};
30
+
28
31
  if (i % 2) {
29
32
  ownKeys(Object(source), true).forEach(function(key) {
30
33
  _defineProperty(target, key, source[key]);
@@ -41,6 +44,7 @@ function _objectSpread(target) {
41
44
  });
42
45
  }
43
46
  }
47
+
44
48
  return target;
45
49
  }
46
50
 
@@ -55,6 +59,7 @@ function _defineProperty(obj, key, value) {
55
59
  } else {
56
60
  obj[key] = value;
57
61
  }
62
+
58
63
  return obj;
59
64
  }
60
65
 
@@ -66,6 +71,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
66
71
  reject(error);
67
72
  return;
68
73
  }
74
+
69
75
  if (info.done) {
70
76
  resolve(value);
71
77
  } else {
@@ -79,12 +85,15 @@ function _asyncToGenerator(fn) {
79
85
  args = arguments;
80
86
  return new Promise(function(resolve, reject) {
81
87
  var gen = fn.apply(self, args);
88
+
82
89
  function _next(value) {
83
90
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
84
91
  }
92
+
85
93
  function _throw(err) {
86
94
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
87
95
  }
96
+
88
97
  _next(undefined);
89
98
  });
90
99
  };
@@ -17,6 +17,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
17
17
  reject(error);
18
18
  return;
19
19
  }
20
+
20
21
  if (info.done) {
21
22
  resolve(value);
22
23
  } else {
@@ -30,12 +31,15 @@ function _asyncToGenerator(fn) {
30
31
  args = arguments;
31
32
  return new Promise(function(resolve, reject) {
32
33
  var gen = fn.apply(self, args);
34
+
33
35
  function _next(value) {
34
36
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
35
37
  }
38
+
36
39
  function _throw(err) {
37
40
  asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
38
41
  }
42
+
39
43
  _next(undefined);
40
44
  });
41
45
  };
@@ -43,6 +47,7 @@ function _asyncToGenerator(fn) {
43
47
 
44
48
  function ownKeys(object, enumerableOnly) {
45
49
  var keys = Object.keys(object);
50
+
46
51
  if (Object.getOwnPropertySymbols) {
47
52
  var symbols = Object.getOwnPropertySymbols(object);
48
53
  if (enumerableOnly)
@@ -51,12 +56,14 @@ function ownKeys(object, enumerableOnly) {
51
56
  });
52
57
  keys.push.apply(keys, symbols);
53
58
  }
59
+
54
60
  return keys;
55
61
  }
56
62
 
57
63
  function _objectSpread(target) {
58
64
  for (var i = 1; i < arguments.length; i++) {
59
65
  var source = arguments[i] != null ? arguments[i] : {};
66
+
60
67
  if (i % 2) {
61
68
  ownKeys(Object(source), true).forEach(function(key) {
62
69
  _defineProperty(target, key, source[key]);
@@ -73,6 +80,7 @@ function _objectSpread(target) {
73
80
  });
74
81
  }
75
82
  }
83
+
76
84
  return target;
77
85
  }
78
86
 
@@ -87,6 +95,7 @@ function _defineProperty(obj, key, value) {
87
95
  } else {
88
96
  obj[key] = value;
89
97
  }
98
+
90
99
  return obj;
91
100
  }
92
101
 
@@ -1,122 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- *
9
- */
10
- "use strict";
11
-
12
- const traverse = require("@babel/traverse").default;
13
-
14
- const babelGenerate = require("@babel/generator").default;
15
-
16
- function optimizeDependencies(
17
- ast,
18
- dependencies,
19
- dependencyMapName,
20
- requireNames
21
- ) {
22
- const visited = new WeakSet();
23
- const context = {
24
- oldToNewIndex: new Map(),
25
- dependencies: []
26
- };
27
- const visitor = {
28
- CallExpression(path) {
29
- const node = path.node;
30
-
31
- if (visited.has(node)) {
32
- return;
33
- }
34
-
35
- if (isRequireCall(node.callee, requireNames)) {
36
- processRequireCall(node);
37
- visited.add(node);
38
- }
39
- },
40
-
41
- MemberExpression(path, state) {
42
- const node = path.node;
43
-
44
- if (visited.has(node)) {
45
- return;
46
- }
47
-
48
- if (isDepMapAccess(node, dependencyMapName)) {
49
- processDepMapAccess(context, node, dependencies);
50
- visited.add(node);
51
- }
52
- }
53
- };
54
- traverse(ast, visitor);
55
- return context.dependencies;
56
- }
57
-
58
- function isRequireCall(callee, requireNames) {
59
- return callee.type === "Identifier" && requireNames.has(callee.name);
60
- }
61
-
62
- function processRequireCall(node) {
63
- if (node.arguments.length != 2) {
64
- throw new InvalidRequireCallError(
65
- "Post-transform calls to require() expect 2 arguments, the first " +
66
- "of which has the shape `_dependencyMapName[123]`, " +
67
- `but this was found: \`${babelGenerate(node).code}\``
68
- );
69
- }
70
-
71
- node.arguments = [node.arguments[0]];
72
- return node;
73
- }
74
-
75
- function isDepMapAccess(node, depMapName) {
76
- return (
77
- node.computed &&
78
- node.object.type === "Identifier" &&
79
- node.object.name === depMapName &&
80
- node.property.type === "NumericLiteral"
81
- );
82
- }
83
-
84
- function processDepMapAccess(context, node, deps) {
85
- const index = node.property.value;
86
- const newIx = translateDependencyIndex(context, deps, index);
87
-
88
- if (newIx !== node.property.value) {
89
- node.property.value = newIx;
90
- }
91
- }
92
-
93
- function translateDependencyIndex(context, deps, index) {
94
- let newIndex = context.oldToNewIndex.get(index);
95
-
96
- if (newIndex != null) {
97
- return newIndex;
98
- }
99
-
100
- const dep = deps[index];
101
-
102
- if (dep == null) {
103
- throw new Error(
104
- `${index} is not a known module index. Existing mappings: ${deps
105
- .map((n, i) => `${i} => ${n.name}`)
106
- .join(", ")}`
107
- );
108
- }
109
-
110
- newIndex = context.dependencies.push(dep) - 1;
111
- context.oldToNewIndex.set(index, newIndex);
112
- return newIndex;
113
- }
114
-
115
- class InvalidRequireCallError extends Error {
116
- constructor(message) {
117
- super(message);
118
- }
119
- }
120
-
121
- optimizeDependencies.InvalidRequireCallError = InvalidRequireCallError;
122
- module.exports = optimizeDependencies;
@@ -1,128 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- * @flow strict-local
9
- */
10
-
11
- 'use strict';
12
-
13
- const traverse = require('@babel/traverse').default;
14
-
15
- const babelGenerate = require('@babel/generator').default;
16
-
17
- import type {Ast} from '@babel/core';
18
- import type {TransformResultDependency} from 'metro/src/DeltaBundler';
19
-
20
- type Context = {
21
- oldToNewIndex: Map<number, number>,
22
- dependencies: Array<TransformResultDependency>,
23
- ...
24
- };
25
-
26
- type Dependencies = $ReadOnlyArray<TransformResultDependency>;
27
-
28
- function optimizeDependencies(
29
- ast: Ast,
30
- dependencies: Dependencies,
31
- dependencyMapName: string,
32
- requireNames: Set<string>,
33
- ): $ReadOnlyArray<TransformResultDependency> {
34
- const visited = new WeakSet();
35
- const context = {
36
- oldToNewIndex: new Map(),
37
- dependencies: [],
38
- };
39
- const visitor = {
40
- CallExpression(path) {
41
- const {node} = path;
42
-
43
- if (visited.has(node)) {
44
- return;
45
- }
46
- if (isRequireCall(node.callee, requireNames)) {
47
- processRequireCall(node);
48
- visited.add(node);
49
- }
50
- },
51
- MemberExpression(path, state) {
52
- const {node} = path;
53
- if (visited.has(node)) {
54
- return;
55
- }
56
- if (isDepMapAccess(node, dependencyMapName)) {
57
- processDepMapAccess(context, node, dependencies);
58
- visited.add(node);
59
- }
60
- },
61
- };
62
- traverse(ast, visitor);
63
- return context.dependencies;
64
- }
65
-
66
- function isRequireCall(callee, requireNames: Set<string>): boolean {
67
- return callee.type === 'Identifier' && requireNames.has(callee.name);
68
- }
69
-
70
- function processRequireCall(node) {
71
- if (node.arguments.length != 2) {
72
- throw new InvalidRequireCallError(
73
- 'Post-transform calls to require() expect 2 arguments, the first ' +
74
- 'of which has the shape `_dependencyMapName[123]`, ' +
75
- `but this was found: \`${babelGenerate(node).code}\``,
76
- );
77
- }
78
- node.arguments = [node.arguments[0]];
79
- return node;
80
- }
81
-
82
- function isDepMapAccess(node, depMapName: string): boolean {
83
- return (
84
- node.computed &&
85
- node.object.type === 'Identifier' &&
86
- node.object.name === depMapName &&
87
- node.property.type === 'NumericLiteral'
88
- );
89
- }
90
-
91
- function processDepMapAccess(context: Context, node, deps: Dependencies): void {
92
- const index = node.property.value;
93
- const newIx = translateDependencyIndex(context, deps, index);
94
- if (newIx !== node.property.value) {
95
- node.property.value = newIx;
96
- }
97
- }
98
-
99
- function translateDependencyIndex(
100
- context: Context,
101
- deps: Dependencies,
102
- index: number,
103
- ): number {
104
- let newIndex = context.oldToNewIndex.get(index);
105
- if (newIndex != null) {
106
- return newIndex;
107
- }
108
- const dep = deps[index];
109
- if (dep == null) {
110
- throw new Error(
111
- `${index} is not a known module index. Existing mappings: ${deps
112
- .map((n: TransformResultDependency, i: number) => `${i} => ${n.name}`)
113
- .join(', ')}`,
114
- );
115
- }
116
- newIndex = context.dependencies.push(dep) - 1;
117
- context.oldToNewIndex.set(index, newIndex);
118
- return newIndex;
119
- }
120
-
121
- class InvalidRequireCallError extends Error {
122
- constructor(message: string) {
123
- super(message);
124
- }
125
- }
126
- optimizeDependencies.InvalidRequireCallError = InvalidRequireCallError;
127
-
128
- module.exports = optimizeDependencies;