metro 0.83.3 → 0.84.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.
- package/package.json +28 -25
- package/src/Assets.js +42 -29
- package/src/Assets.js.flow +26 -15
- package/src/Bundler/util.js +25 -21
- package/src/Bundler/util.js.flow +2 -2
- package/src/Bundler.js.flow +1 -1
- package/src/DeltaBundler/DeltaCalculator.js +4 -4
- package/src/DeltaBundler/DeltaCalculator.js.flow +8 -8
- package/src/DeltaBundler/Graph.js +16 -16
- package/src/DeltaBundler/Graph.js.flow +30 -30
- package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +1 -1
- package/src/DeltaBundler/Serializers/getAllFiles.js.flow +2 -2
- package/src/DeltaBundler/Serializers/getAssets.js.flow +2 -2
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +2 -2
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +8 -8
- package/src/DeltaBundler/Serializers/helpers/js.js +25 -21
- package/src/DeltaBundler/Serializers/helpers/js.js.flow +6 -6
- package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -3
- package/src/DeltaBundler/Serializers/hmrJSBundle.js +25 -21
- package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +5 -5
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +6 -6
- package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +2 -2
- package/src/DeltaBundler/Serializers/sourceMapString.js.flow +2 -2
- package/src/DeltaBundler/Transformer.js.flow +3 -3
- package/src/DeltaBundler/Worker.flow.js.flow +1 -1
- package/src/DeltaBundler/WorkerFarm.js +1 -1
- package/src/DeltaBundler/WorkerFarm.js.flow +26 -13
- package/src/DeltaBundler/buildSubgraph.js +4 -4
- package/src/DeltaBundler/buildSubgraph.js.flow +8 -8
- package/src/DeltaBundler/types.js.flow +36 -34
- package/src/DeltaBundler.js.flow +2 -2
- package/src/HmrServer.js +34 -29
- package/src/HmrServer.js.flow +17 -12
- package/src/IncrementalBundler.js +29 -21
- package/src/IncrementalBundler.js.flow +13 -9
- package/src/ModuleGraph/worker/JsFileWrapping.js +25 -21
- package/src/ModuleGraph/worker/JsFileWrapping.js.flow +10 -5
- package/src/ModuleGraph/worker/collectDependencies.js +25 -21
- package/src/ModuleGraph/worker/collectDependencies.js.flow +27 -21
- package/src/ModuleGraph/worker/generateImportNames.js.flow +4 -2
- package/src/ModuleGraph/worker/importLocationsPlugin.js.flow +7 -3
- package/src/Server/MultipartResponse.js.flow +1 -1
- package/src/Server/symbolicate.js.flow +4 -4
- package/src/Server.js +139 -39
- package/src/Server.js.flow +158 -47
- package/src/cli/parseKeyValueParamArray.js.flow +1 -1
- package/src/cli-utils.js.flow +2 -2
- package/src/commands/build.js.flow +11 -10
- package/src/commands/dependencies.js.flow +8 -4
- package/src/commands/serve.js +2 -0
- package/src/commands/serve.js.flow +14 -9
- package/src/index.flow.js +30 -26
- package/src/index.flow.js.flow +25 -20
- package/src/integration_tests/basic_bundle/AssetRegistry.js.flow +1 -1
- package/src/integration_tests/basic_bundle/ErrorBundle.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-multi-line-import-with-escapes.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-multi-line-import.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-require-with-embedded-comment.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-require.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-specifier-with-escapes.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js.flow +1 -1
- package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-require.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/index.js +25 -21
- package/src/integration_tests/basic_bundle/import-export/index.js.flow +3 -3
- package/src/integration_tests/basic_bundle/import-export/utils.js.flow +2 -2
- package/src/integration_tests/basic_bundle/loadBundleAsyncForTest.js.flow +1 -1
- package/src/integration_tests/basic_bundle/optional-dependencies/index.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/conflict.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/empty.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/matching.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/mode-eager.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/mode-lazy-once.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/mode-lazy.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-context/mode-sync.js.flow +2 -2
- package/src/integration_tests/basic_bundle/require-context/utils.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-resolveWeak/import-and-resolveWeak.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-resolveWeak/multiple.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-resolveWeak/never-required.js.flow +1 -1
- package/src/integration_tests/basic_bundle/require-resolveWeak/require-and-resolveWeak.js.flow +1 -1
- package/src/integration_tests/execBundle.js.flow +1 -1
- package/src/lib/BatchProcessor.js +5 -2
- package/src/lib/BatchProcessor.js.flow +10 -7
- package/src/lib/CountingSet.js.flow +4 -4
- package/src/lib/JsonReporter.js +5 -3
- package/src/lib/JsonReporter.js.flow +19 -17
- package/src/lib/RamBundleParser.js.flow +1 -1
- package/src/lib/TerminalReporter.js +31 -27
- package/src/lib/TerminalReporter.js.flow +15 -15
- package/src/lib/contextModule.js.flow +1 -1
- package/src/lib/contextModuleTemplates.js +25 -21
- package/src/lib/countLines.js +4 -3
- package/src/lib/countLines.js.flow +3 -4
- package/src/lib/createWebsocketServer.js +9 -2
- package/src/lib/createWebsocketServer.js.flow +16 -9
- package/src/lib/debounceAsyncQueue.js.flow +1 -1
- package/src/lib/formatBundlingError.js.flow +1 -1
- package/src/lib/getAppendScripts.js.flow +4 -4
- package/src/lib/getGraphId.js.flow +1 -1
- package/src/lib/getPreludeCode.js +4 -0
- package/src/lib/getPreludeCode.js.flow +10 -3
- package/src/lib/getPrependedScripts.js +36 -22
- package/src/lib/getPrependedScripts.js.flow +10 -3
- package/src/lib/logToConsole.js.flow +2 -2
- package/src/lib/parseBundleOptionsFromBundleRequestUrl.js +25 -21
- package/src/lib/parseCustomResolverOptions.js.flow +2 -2
- package/src/lib/parseCustomTransformOptions.js.flow +1 -1
- package/src/lib/parseJsonBody.js.flow +11 -1
- package/src/lib/pathUtils.js +25 -21
- package/src/lib/pathUtils.js.flow +1 -1
- package/src/lib/reporting.js.flow +4 -4
- package/src/lib/transformHelpers.js +11 -9
- package/src/lib/transformHelpers.js.flow +17 -15
- package/src/node-haste/DependencyGraph/ModuleResolution.js +48 -42
- package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +35 -32
- package/src/node-haste/DependencyGraph/createFileMap.js +56 -38
- package/src/node-haste/DependencyGraph/createFileMap.js.flow +44 -18
- package/src/node-haste/DependencyGraph.js +40 -31
- package/src/node-haste/DependencyGraph.js.flow +35 -37
- package/src/node-haste/lib/AssetPaths.js +2 -2
- package/src/node-haste/lib/AssetPaths.js.flow +4 -4
- package/src/node-haste/lib/parsePlatformFilePath.js +6 -6
- package/src/node-haste/lib/parsePlatformFilePath.js.flow +4 -4
- package/src/shared/output/RamBundle/as-assets.js.flow +6 -6
- package/src/shared/output/RamBundle/as-indexed-file.js.flow +5 -5
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +5 -5
- package/src/shared/output/RamBundle/util.js.flow +5 -5
- package/src/shared/output/RamBundle/write-sourcemap.js.flow +1 -1
- package/src/shared/output/RamBundle.js.flow +1 -1
- package/src/shared/output/bundle.flow.js.flow +3 -3
- package/src/shared/output/meta.js +2 -2
- package/src/shared/output/meta.js.flow +1 -1
- package/src/shared/output/writeFile.js +8 -3
- package/src/shared/output/writeFile.js.flow +8 -2
- package/src/shared/types.js.flow +20 -5
- package/src/Asset.d.ts +0 -25
- package/src/Bundler.d.ts +0 -39
- package/src/DeltaBundler/Graph.d.ts +0 -40
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.d.ts +0 -26
- package/src/DeltaBundler/Serializers/getRamBundleInfo.d.ts +0 -18
- package/src/DeltaBundler/Worker.d.ts +0 -45
- package/src/DeltaBundler/types.d.ts +0 -166
- package/src/DeltaBundler.d.ts +0 -58
- package/src/IncrementalBundler.d.ts +0 -98
- package/src/ModuleGraph/test-helpers.js +0 -75
- package/src/ModuleGraph/worker/collectDependencies.d.ts +0 -27
- package/src/Server/MultipartResponse.d.ts +0 -31
- package/src/Server/symbolicate.d.ts +0 -31
- package/src/Server.d.ts +0 -118
- package/src/index.d.ts +0 -193
- package/src/lib/CountingSet.d.ts +0 -48
- package/src/lib/TerminalReporter.d.ts +0 -27
- package/src/lib/contextModule.d.ts +0 -22
- package/src/lib/getGraphId.d.ts +0 -11
- package/src/lib/reporting.d.ts +0 -144
- package/src/node-haste/DependencyGraph.d.ts +0 -62
- package/src/shared/output/bundle.d.ts +0 -35
- package/src/shared/types.d.ts +0 -130
|
@@ -13,28 +13,32 @@ var _createDefaultContext = _interopRequireDefault(
|
|
|
13
13
|
);
|
|
14
14
|
var _path = _interopRequireDefault(require("path"));
|
|
15
15
|
var _util = _interopRequireDefault(require("util"));
|
|
16
|
-
function
|
|
17
|
-
if ("function"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var n = { __proto__: null },
|
|
31
|
-
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
32
|
-
for (var u in e)
|
|
33
|
-
if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
34
|
-
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
|
35
|
-
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : (n[u] = e[u]);
|
|
16
|
+
function _interopRequireWildcard(e, t) {
|
|
17
|
+
if ("function" == typeof WeakMap)
|
|
18
|
+
var r = new WeakMap(),
|
|
19
|
+
n = new WeakMap();
|
|
20
|
+
return (_interopRequireWildcard = function (e, t) {
|
|
21
|
+
if (!t && e && e.__esModule) return e;
|
|
22
|
+
var o,
|
|
23
|
+
i,
|
|
24
|
+
f = { __proto__: null, default: e };
|
|
25
|
+
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
26
|
+
return f;
|
|
27
|
+
if ((o = t ? n : r)) {
|
|
28
|
+
if (o.has(e)) return o.get(e);
|
|
29
|
+
o.set(e, f);
|
|
36
30
|
}
|
|
37
|
-
|
|
31
|
+
for (const t in e)
|
|
32
|
+
"default" !== t &&
|
|
33
|
+
{}.hasOwnProperty.call(e, t) &&
|
|
34
|
+
((i =
|
|
35
|
+
(o = Object.defineProperty) &&
|
|
36
|
+
Object.getOwnPropertyDescriptor(e, t)) &&
|
|
37
|
+
(i.get || i.set)
|
|
38
|
+
? o(f, t, i)
|
|
39
|
+
: (f[t] = e[t]));
|
|
40
|
+
return f;
|
|
41
|
+
})(e, t);
|
|
38
42
|
}
|
|
39
43
|
function _interopRequireDefault(e) {
|
|
40
44
|
return e && e.__esModule ? e : { default: e };
|
|
@@ -51,13 +55,13 @@ class ModuleResolver {
|
|
|
51
55
|
emptyModule = this.resolveDependency(
|
|
52
56
|
this._projectRootFakeModulePath,
|
|
53
57
|
{
|
|
54
|
-
name: this._options.emptyModulePath,
|
|
55
58
|
data: {
|
|
56
|
-
key: this._options.emptyModulePath,
|
|
57
59
|
asyncType: null,
|
|
58
60
|
isESMImport: false,
|
|
61
|
+
key: this._options.emptyModulePath,
|
|
59
62
|
locs: [],
|
|
60
63
|
},
|
|
64
|
+
name: this._options.emptyModulePath,
|
|
61
65
|
},
|
|
62
66
|
false,
|
|
63
67
|
null,
|
|
@@ -91,6 +95,7 @@ class ModuleResolver {
|
|
|
91
95
|
unstable_conditionNames,
|
|
92
96
|
unstable_conditionsByPlatform,
|
|
93
97
|
unstable_enablePackageExports,
|
|
98
|
+
unstable_incrementalResolution,
|
|
94
99
|
} = this._options;
|
|
95
100
|
try {
|
|
96
101
|
const result = Resolver.resolve(
|
|
@@ -98,31 +103,32 @@ class ModuleResolver {
|
|
|
98
103
|
{
|
|
99
104
|
allowHaste,
|
|
100
105
|
assetExts,
|
|
106
|
+
customResolverOptions: resolverOptions.customResolverOptions ?? {},
|
|
101
107
|
dev: resolverOptions.dev,
|
|
102
108
|
disableHierarchicalLookup,
|
|
103
109
|
doesFileExist,
|
|
104
110
|
extraNodeModules,
|
|
105
111
|
fileSystemLookup,
|
|
112
|
+
getPackage: this._getPackage,
|
|
113
|
+
getPackageForModule: (absoluteModulePath) =>
|
|
114
|
+
this._getPackageForModule(absoluteModulePath),
|
|
106
115
|
isESMImport: dependency.data.isESMImport,
|
|
107
116
|
mainFields,
|
|
108
117
|
nodeModulesPaths,
|
|
118
|
+
originModulePath,
|
|
109
119
|
preferNativePlatform,
|
|
110
120
|
resolveAsset,
|
|
121
|
+
resolveHasteModule: (name) =>
|
|
122
|
+
this._options.getHasteModulePath(name, platform),
|
|
123
|
+
resolveHastePackage: (name) =>
|
|
124
|
+
this._options.getHastePackagePath(name, platform),
|
|
111
125
|
resolveRequest,
|
|
112
126
|
sourceExts,
|
|
113
127
|
unstable_conditionNames,
|
|
114
128
|
unstable_conditionsByPlatform,
|
|
115
129
|
unstable_enablePackageExports,
|
|
130
|
+
unstable_incrementalResolution,
|
|
116
131
|
unstable_logWarning: this._logWarning,
|
|
117
|
-
customResolverOptions: resolverOptions.customResolverOptions ?? {},
|
|
118
|
-
originModulePath,
|
|
119
|
-
resolveHasteModule: (name) =>
|
|
120
|
-
this._options.getHasteModulePath(name, platform),
|
|
121
|
-
resolveHastePackage: (name) =>
|
|
122
|
-
this._options.getHastePackagePath(name, platform),
|
|
123
|
-
getPackage: this._getPackage,
|
|
124
|
-
getPackageForModule: (absoluteModulePath) =>
|
|
125
|
-
this._getPackageForModule(absoluteModulePath),
|
|
126
132
|
},
|
|
127
133
|
dependency,
|
|
128
134
|
),
|
|
@@ -198,9 +204,9 @@ class ModuleResolver {
|
|
|
198
204
|
} catch (e) {}
|
|
199
205
|
return result != null
|
|
200
206
|
? {
|
|
201
|
-
rootPath: _path.default.dirname(result.pkg.path),
|
|
202
207
|
packageJson: result.pkg.read(),
|
|
203
208
|
packageRelativePath: result.packageRelativePath,
|
|
209
|
+
rootPath: _path.default.dirname(result.pkg.path),
|
|
204
210
|
}
|
|
205
211
|
: null;
|
|
206
212
|
};
|
|
@@ -212,8 +218,8 @@ class ModuleResolver {
|
|
|
212
218
|
const arbitrary = getArrayLowestItem(resolution.filePaths);
|
|
213
219
|
(0, _invariant.default)(arbitrary != null, "invalid asset resolution");
|
|
214
220
|
return {
|
|
215
|
-
type: "sourceFile",
|
|
216
221
|
filePath: arbitrary,
|
|
222
|
+
type: "sourceFile",
|
|
217
223
|
};
|
|
218
224
|
case "empty":
|
|
219
225
|
return this._getEmptyModule();
|
|
@@ -224,8 +230,8 @@ class ModuleResolver {
|
|
|
224
230
|
}
|
|
225
231
|
_logWarning = (message) => {
|
|
226
232
|
this._options.reporter.update({
|
|
227
|
-
type: "resolver_warning",
|
|
228
233
|
message,
|
|
234
|
+
type: "resolver_warning",
|
|
229
235
|
});
|
|
230
236
|
};
|
|
231
237
|
_removeRoot(candidates) {
|
|
@@ -313,8 +319,8 @@ function refineDependencyLocation(loc, fileContents, targetSpecifier) {
|
|
|
313
319
|
if (isQuote(maybeQuoteBefore) && maybeQuoteBefore === maybeQuoteAfter) {
|
|
314
320
|
return {
|
|
315
321
|
start: {
|
|
316
|
-
line: line + 1,
|
|
317
322
|
column: minColumn + offset + 1,
|
|
323
|
+
line: line + 1,
|
|
318
324
|
},
|
|
319
325
|
};
|
|
320
326
|
}
|
|
@@ -322,20 +328,20 @@ function refineDependencyLocation(loc, fileContents, targetSpecifier) {
|
|
|
322
328
|
}
|
|
323
329
|
if (loc.start.line === loc.end.line) {
|
|
324
330
|
return {
|
|
325
|
-
start: {
|
|
326
|
-
line: loc.start.line,
|
|
327
|
-
column: loc.start.column + 1,
|
|
328
|
-
},
|
|
329
331
|
end: {
|
|
330
|
-
line: loc.end.line,
|
|
331
332
|
column: loc.end.column + 1,
|
|
333
|
+
line: loc.end.line,
|
|
334
|
+
},
|
|
335
|
+
start: {
|
|
336
|
+
column: loc.start.column + 1,
|
|
337
|
+
line: loc.start.line,
|
|
332
338
|
},
|
|
333
339
|
};
|
|
334
340
|
}
|
|
335
341
|
return {
|
|
336
342
|
start: {
|
|
337
|
-
line: loc.start.line,
|
|
338
343
|
column: loc.start.column + 1,
|
|
344
|
+
line: loc.start.line,
|
|
339
345
|
},
|
|
340
346
|
};
|
|
341
347
|
}
|
|
@@ -56,8 +56,8 @@ export type PackageishCache<TPackage> = interface {
|
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
type Options<TPackage> =
|
|
60
|
-
assetExts:
|
|
59
|
+
type Options<TPackage> = Readonly<{
|
|
60
|
+
assetExts: ReadonlySet<string>,
|
|
61
61
|
dirExists: DirExistsFn,
|
|
62
62
|
disableHierarchicalLookup: boolean,
|
|
63
63
|
doesFileExist: DoesFileExist,
|
|
@@ -66,20 +66,21 @@ type Options<TPackage> = $ReadOnly<{
|
|
|
66
66
|
fileSystemLookup: FileSystemLookup,
|
|
67
67
|
getHasteModulePath: (name: string, platform: ?string) => ?string,
|
|
68
68
|
getHastePackagePath: (name: string, platform: ?string) => ?string,
|
|
69
|
-
mainFields:
|
|
69
|
+
mainFields: ReadonlyArray<string>,
|
|
70
70
|
packageCache: PackageishCache<TPackage>,
|
|
71
|
-
nodeModulesPaths:
|
|
71
|
+
nodeModulesPaths: ReadonlyArray<string>,
|
|
72
72
|
preferNativePlatform: boolean,
|
|
73
73
|
projectRoot: string,
|
|
74
74
|
reporter: Reporter,
|
|
75
75
|
resolveAsset: ResolveAsset,
|
|
76
76
|
resolveRequest: ?CustomResolver,
|
|
77
|
-
sourceExts:
|
|
78
|
-
unstable_conditionNames:
|
|
79
|
-
unstable_conditionsByPlatform:
|
|
80
|
-
[platform: string]:
|
|
77
|
+
sourceExts: ReadonlyArray<string>,
|
|
78
|
+
unstable_conditionNames: ReadonlyArray<string>,
|
|
79
|
+
unstable_conditionsByPlatform: Readonly<{
|
|
80
|
+
[platform: string]: ReadonlyArray<string>,
|
|
81
81
|
}>,
|
|
82
82
|
unstable_enablePackageExports: boolean,
|
|
83
|
+
unstable_incrementalResolution: boolean,
|
|
83
84
|
}>;
|
|
84
85
|
|
|
85
86
|
export class ModuleResolver<TPackage: Packageish> {
|
|
@@ -101,13 +102,13 @@ export class ModuleResolver<TPackage: Packageish> {
|
|
|
101
102
|
emptyModule = this.resolveDependency(
|
|
102
103
|
this._projectRootFakeModulePath,
|
|
103
104
|
{
|
|
104
|
-
name: this._options.emptyModulePath,
|
|
105
105
|
data: {
|
|
106
|
-
key: this._options.emptyModulePath,
|
|
107
106
|
asyncType: null,
|
|
108
107
|
isESMImport: false,
|
|
108
|
+
key: this._options.emptyModulePath,
|
|
109
109
|
locs: [],
|
|
110
110
|
},
|
|
111
|
+
name: this._options.emptyModulePath,
|
|
111
112
|
},
|
|
112
113
|
false,
|
|
113
114
|
null,
|
|
@@ -140,6 +141,7 @@ export class ModuleResolver<TPackage: Packageish> {
|
|
|
140
141
|
unstable_conditionNames,
|
|
141
142
|
unstable_conditionsByPlatform,
|
|
142
143
|
unstable_enablePackageExports,
|
|
144
|
+
unstable_incrementalResolution,
|
|
143
145
|
} = this._options;
|
|
144
146
|
|
|
145
147
|
try {
|
|
@@ -148,31 +150,32 @@ export class ModuleResolver<TPackage: Packageish> {
|
|
|
148
150
|
{
|
|
149
151
|
allowHaste,
|
|
150
152
|
assetExts,
|
|
153
|
+
customResolverOptions: resolverOptions.customResolverOptions ?? {},
|
|
151
154
|
dev: resolverOptions.dev,
|
|
152
155
|
disableHierarchicalLookup,
|
|
153
156
|
doesFileExist,
|
|
154
157
|
extraNodeModules,
|
|
155
158
|
fileSystemLookup,
|
|
159
|
+
getPackage: this._getPackage,
|
|
160
|
+
getPackageForModule: (absoluteModulePath: string) =>
|
|
161
|
+
this._getPackageForModule(absoluteModulePath),
|
|
156
162
|
isESMImport: dependency.data.isESMImport,
|
|
157
163
|
mainFields,
|
|
158
164
|
nodeModulesPaths,
|
|
165
|
+
originModulePath,
|
|
159
166
|
preferNativePlatform,
|
|
160
167
|
resolveAsset,
|
|
168
|
+
resolveHasteModule: (name: string) =>
|
|
169
|
+
this._options.getHasteModulePath(name, platform),
|
|
170
|
+
resolveHastePackage: (name: string) =>
|
|
171
|
+
this._options.getHastePackagePath(name, platform),
|
|
161
172
|
resolveRequest,
|
|
162
173
|
sourceExts,
|
|
163
174
|
unstable_conditionNames,
|
|
164
175
|
unstable_conditionsByPlatform,
|
|
165
176
|
unstable_enablePackageExports,
|
|
177
|
+
unstable_incrementalResolution,
|
|
166
178
|
unstable_logWarning: this._logWarning,
|
|
167
|
-
customResolverOptions: resolverOptions.customResolverOptions ?? {},
|
|
168
|
-
originModulePath,
|
|
169
|
-
resolveHasteModule: (name: string) =>
|
|
170
|
-
this._options.getHasteModulePath(name, platform),
|
|
171
|
-
resolveHastePackage: (name: string) =>
|
|
172
|
-
this._options.getHastePackagePath(name, platform),
|
|
173
|
-
getPackage: this._getPackage,
|
|
174
|
-
getPackageForModule: (absoluteModulePath: string) =>
|
|
175
|
-
this._getPackageForModule(absoluteModulePath),
|
|
176
179
|
},
|
|
177
180
|
dependency,
|
|
178
181
|
),
|
|
@@ -260,9 +263,9 @@ export class ModuleResolver<TPackage: Packageish> {
|
|
|
260
263
|
|
|
261
264
|
return result != null
|
|
262
265
|
? {
|
|
263
|
-
rootPath: path.dirname(result.pkg.path),
|
|
264
266
|
packageJson: result.pkg.read(),
|
|
265
267
|
packageRelativePath: result.packageRelativePath,
|
|
268
|
+
rootPath: path.dirname(result.pkg.path),
|
|
266
269
|
}
|
|
267
270
|
: null;
|
|
268
271
|
};
|
|
@@ -279,19 +282,19 @@ export class ModuleResolver<TPackage: Packageish> {
|
|
|
279
282
|
// not just an arbitrary item!
|
|
280
283
|
const arbitrary = getArrayLowestItem(resolution.filePaths);
|
|
281
284
|
invariant(arbitrary != null, 'invalid asset resolution');
|
|
282
|
-
return {type: 'sourceFile'
|
|
285
|
+
return {filePath: arbitrary, type: 'sourceFile'};
|
|
283
286
|
case 'empty':
|
|
284
287
|
return this._getEmptyModule();
|
|
285
288
|
default:
|
|
286
|
-
|
|
289
|
+
resolution.type as empty;
|
|
287
290
|
throw new Error('invalid type');
|
|
288
291
|
}
|
|
289
292
|
}
|
|
290
293
|
|
|
291
294
|
_logWarning = (message: string): void => {
|
|
292
295
|
this._options.reporter.update({
|
|
293
|
-
type: 'resolver_warning',
|
|
294
296
|
message,
|
|
297
|
+
type: 'resolver_warning',
|
|
295
298
|
});
|
|
296
299
|
};
|
|
297
300
|
|
|
@@ -306,7 +309,7 @@ export class ModuleResolver<TPackage: Packageish> {
|
|
|
306
309
|
}
|
|
307
310
|
}
|
|
308
311
|
|
|
309
|
-
function getArrayLowestItem(a:
|
|
312
|
+
function getArrayLowestItem(a: ReadonlyArray<string>): string | void {
|
|
310
313
|
if (a.length === 0) {
|
|
311
314
|
return undefined;
|
|
312
315
|
}
|
|
@@ -343,7 +346,7 @@ export class UnableToResolveError extends Error {
|
|
|
343
346
|
originModulePath: string,
|
|
344
347
|
targetModuleName: string,
|
|
345
348
|
message: string,
|
|
346
|
-
options?:
|
|
349
|
+
options?: Readonly<{
|
|
347
350
|
dependency?: ?TransformResultDependency,
|
|
348
351
|
cause?: Error,
|
|
349
352
|
}>,
|
|
@@ -429,8 +432,8 @@ function refineDependencyLocation(
|
|
|
429
432
|
if (isQuote(maybeQuoteBefore) && maybeQuoteBefore === maybeQuoteAfter) {
|
|
430
433
|
return {
|
|
431
434
|
start: {
|
|
432
|
-
line: line + 1,
|
|
433
435
|
column: minColumn + offset + 1,
|
|
436
|
+
line: line + 1,
|
|
434
437
|
},
|
|
435
438
|
};
|
|
436
439
|
}
|
|
@@ -439,13 +442,13 @@ function refineDependencyLocation(
|
|
|
439
442
|
// Otherwise, if this is a single-line loc, return it exactly, as a range.
|
|
440
443
|
if (loc.start.line === loc.end.line) {
|
|
441
444
|
return {
|
|
442
|
-
start: {
|
|
443
|
-
line: loc.start.line,
|
|
444
|
-
column: loc.start.column + 1,
|
|
445
|
-
},
|
|
446
445
|
end: {
|
|
447
|
-
line: loc.end.line,
|
|
448
446
|
column: loc.end.column + 1,
|
|
447
|
+
line: loc.end.line,
|
|
448
|
+
},
|
|
449
|
+
start: {
|
|
450
|
+
column: loc.start.column + 1,
|
|
451
|
+
line: loc.start.line,
|
|
449
452
|
},
|
|
450
453
|
};
|
|
451
454
|
}
|
|
@@ -453,8 +456,8 @@ function refineDependencyLocation(
|
|
|
453
456
|
// much unnecessary context.
|
|
454
457
|
return {
|
|
455
458
|
start: {
|
|
456
|
-
line: loc.start.line,
|
|
457
459
|
column: loc.start.column + 1,
|
|
460
|
+
line: loc.start.line,
|
|
458
461
|
},
|
|
459
462
|
};
|
|
460
463
|
}
|
|
@@ -6,28 +6,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = createFileMap;
|
|
7
7
|
var _ciInfo = _interopRequireDefault(require("ci-info"));
|
|
8
8
|
var _metroFileMap = _interopRequireWildcard(require("metro-file-map"));
|
|
9
|
-
function
|
|
10
|
-
if ("function"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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 = { __proto__: null, default: e };
|
|
18
|
+
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
19
|
+
return f;
|
|
20
|
+
if ((o = t ? n : r)) {
|
|
21
|
+
if (o.has(e)) return o.get(e);
|
|
22
|
+
o.set(e, f);
|
|
29
23
|
}
|
|
30
|
-
|
|
24
|
+
for (const t in e)
|
|
25
|
+
"default" !== t &&
|
|
26
|
+
{}.hasOwnProperty.call(e, t) &&
|
|
27
|
+
((i =
|
|
28
|
+
(o = Object.defineProperty) &&
|
|
29
|
+
Object.getOwnPropertyDescriptor(e, t)) &&
|
|
30
|
+
(i.get || i.set)
|
|
31
|
+
? o(f, t, i)
|
|
32
|
+
: (f[t] = e[t]));
|
|
33
|
+
return f;
|
|
34
|
+
})(e, t);
|
|
31
35
|
}
|
|
32
36
|
function _interopRequireDefault(e) {
|
|
33
37
|
return e && e.__esModule ? e : { default: e };
|
|
@@ -63,16 +67,35 @@ function getIgnorePattern(config) {
|
|
|
63
67
|
return ignorePattern;
|
|
64
68
|
}
|
|
65
69
|
function createFileMap(config, options) {
|
|
66
|
-
const dependencyExtractor =
|
|
67
|
-
options?.extractDependencies === false
|
|
68
|
-
? null
|
|
69
|
-
: config.resolver.dependencyExtractor;
|
|
70
|
-
const computeDependencies = dependencyExtractor != null;
|
|
71
70
|
const watch = options?.watch == null ? !_ciInfo.default.isCI : options.watch;
|
|
72
71
|
const { enabled: autoSaveEnabled, ...autoSaveOpts } =
|
|
73
72
|
config.watcher.unstable_autoSaveCache ?? {};
|
|
74
73
|
const autoSave = watch && autoSaveEnabled ? autoSaveOpts : false;
|
|
75
|
-
|
|
74
|
+
const plugins = [];
|
|
75
|
+
let dependencyPlugin = null;
|
|
76
|
+
if (
|
|
77
|
+
config.resolver.dependencyExtractor != null &&
|
|
78
|
+
options?.extractDependencies !== false
|
|
79
|
+
) {
|
|
80
|
+
dependencyPlugin = new _metroFileMap.DependencyPlugin({
|
|
81
|
+
dependencyExtractor: config.resolver.dependencyExtractor,
|
|
82
|
+
computeDependencies: true,
|
|
83
|
+
rootDir: config.projectRoot,
|
|
84
|
+
});
|
|
85
|
+
plugins.push(dependencyPlugin);
|
|
86
|
+
}
|
|
87
|
+
const hasteMap = new _metroFileMap.HastePlugin({
|
|
88
|
+
platforms: new Set([
|
|
89
|
+
...config.resolver.platforms,
|
|
90
|
+
_metroFileMap.default.H.NATIVE_PLATFORM,
|
|
91
|
+
]),
|
|
92
|
+
hasteImplModulePath: config.resolver.hasteImplModulePath,
|
|
93
|
+
enableHastePackages: config.resolver.enableGlobalPackages,
|
|
94
|
+
rootDir: config.projectRoot,
|
|
95
|
+
failValidationOnConflicts: options?.throwOnModuleCollision ?? true,
|
|
96
|
+
});
|
|
97
|
+
plugins.push(hasteMap);
|
|
98
|
+
const fileMap = new _metroFileMap.default({
|
|
76
99
|
cacheManagerFactory:
|
|
77
100
|
config?.unstable_fileMapCacheManagerFactory ??
|
|
78
101
|
((factoryParams) =>
|
|
@@ -83,12 +106,8 @@ function createFileMap(config, options) {
|
|
|
83
106
|
autoSave,
|
|
84
107
|
})),
|
|
85
108
|
perfLoggerFactory: config.unstable_perfLoggerFactory,
|
|
86
|
-
computeDependencies,
|
|
87
109
|
computeSha1: !config.watcher.unstable_lazySha1,
|
|
88
|
-
dependencyExtractor: config.resolver.dependencyExtractor,
|
|
89
|
-
enableHastePackages: config?.resolver.enableGlobalPackages,
|
|
90
110
|
enableSymlinks: true,
|
|
91
|
-
enableWorkerThreads: config.watcher.unstable_workerThreads,
|
|
92
111
|
extensions: Array.from(
|
|
93
112
|
new Set([
|
|
94
113
|
...config.resolver.sourceExts,
|
|
@@ -97,22 +116,21 @@ function createFileMap(config, options) {
|
|
|
97
116
|
]),
|
|
98
117
|
),
|
|
99
118
|
forceNodeFilesystemAPI: !config.resolver.useWatchman,
|
|
100
|
-
hasteImplModulePath: config.resolver.hasteImplModulePath,
|
|
101
119
|
healthCheck: config.watcher.healthCheck,
|
|
102
120
|
ignorePattern: getIgnorePattern(config),
|
|
103
121
|
maxWorkers: config.maxWorkers,
|
|
104
|
-
|
|
105
|
-
platforms: [
|
|
106
|
-
...config.resolver.platforms,
|
|
107
|
-
_metroFileMap.default.H.NATIVE_PLATFORM,
|
|
108
|
-
],
|
|
122
|
+
plugins,
|
|
109
123
|
retainAllFiles: true,
|
|
110
124
|
resetCache: config.resetCache,
|
|
111
125
|
rootDir: config.projectRoot,
|
|
112
126
|
roots: config.watchFolders,
|
|
113
|
-
throwOnModuleCollision: options?.throwOnModuleCollision ?? true,
|
|
114
127
|
useWatchman: config.resolver.useWatchman,
|
|
115
128
|
watch,
|
|
116
129
|
watchmanDeferStates: config.watcher.watchman.deferStates,
|
|
117
130
|
});
|
|
131
|
+
return {
|
|
132
|
+
fileMap,
|
|
133
|
+
hasteMap,
|
|
134
|
+
dependencyPlugin,
|
|
135
|
+
};
|
|
118
136
|
}
|
|
@@ -10,9 +10,14 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import type {ConfigT} from 'metro-config';
|
|
13
|
+
import type {HasteMap} from 'metro-file-map';
|
|
13
14
|
|
|
14
15
|
import ci from 'ci-info';
|
|
15
|
-
import MetroFileMap, {
|
|
16
|
+
import MetroFileMap, {
|
|
17
|
+
DependencyPlugin,
|
|
18
|
+
DiskCacheManager,
|
|
19
|
+
HastePlugin,
|
|
20
|
+
} from 'metro-file-map';
|
|
16
21
|
|
|
17
22
|
function getIgnorePattern(config: ConfigT): RegExp {
|
|
18
23
|
// For now we support both options
|
|
@@ -54,25 +59,52 @@ function getIgnorePattern(config: ConfigT): RegExp {
|
|
|
54
59
|
|
|
55
60
|
export default function createFileMap(
|
|
56
61
|
config: ConfigT,
|
|
57
|
-
options?:
|
|
62
|
+
options?: Readonly<{
|
|
58
63
|
extractDependencies?: boolean,
|
|
59
64
|
watch?: boolean,
|
|
60
65
|
throwOnModuleCollision?: boolean,
|
|
61
66
|
cacheFilePrefix?: string,
|
|
62
67
|
}>,
|
|
63
|
-
):
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const computeDependencies = dependencyExtractor != null;
|
|
69
|
-
|
|
68
|
+
): {
|
|
69
|
+
fileMap: MetroFileMap,
|
|
70
|
+
hasteMap: HasteMap,
|
|
71
|
+
dependencyPlugin: ?DependencyPlugin,
|
|
72
|
+
} {
|
|
70
73
|
const watch = options?.watch == null ? !ci.isCI : options.watch;
|
|
71
74
|
const {enabled: autoSaveEnabled, ...autoSaveOpts} =
|
|
72
75
|
config.watcher.unstable_autoSaveCache ?? {};
|
|
73
76
|
const autoSave = watch && autoSaveEnabled ? autoSaveOpts : false;
|
|
74
77
|
|
|
75
|
-
|
|
78
|
+
const plugins: Array<DependencyPlugin | HastePlugin> = [];
|
|
79
|
+
|
|
80
|
+
let dependencyPlugin = null;
|
|
81
|
+
// Add DependencyPlugin if dependencies should be extracted
|
|
82
|
+
if (
|
|
83
|
+
config.resolver.dependencyExtractor != null &&
|
|
84
|
+
options?.extractDependencies !== false
|
|
85
|
+
) {
|
|
86
|
+
dependencyPlugin = new DependencyPlugin({
|
|
87
|
+
dependencyExtractor: config.resolver.dependencyExtractor,
|
|
88
|
+
computeDependencies: true,
|
|
89
|
+
rootDir: config.projectRoot,
|
|
90
|
+
});
|
|
91
|
+
plugins.push(dependencyPlugin);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const hasteMap = new HastePlugin({
|
|
95
|
+
platforms: new Set([
|
|
96
|
+
...config.resolver.platforms,
|
|
97
|
+
MetroFileMap.H.NATIVE_PLATFORM,
|
|
98
|
+
]),
|
|
99
|
+
hasteImplModulePath: config.resolver.hasteImplModulePath,
|
|
100
|
+
enableHastePackages: config.resolver.enableGlobalPackages,
|
|
101
|
+
rootDir: config.projectRoot,
|
|
102
|
+
failValidationOnConflicts: options?.throwOnModuleCollision ?? true,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
plugins.push(hasteMap);
|
|
106
|
+
|
|
107
|
+
const fileMap = new MetroFileMap({
|
|
76
108
|
cacheManagerFactory:
|
|
77
109
|
config?.unstable_fileMapCacheManagerFactory ??
|
|
78
110
|
(factoryParams =>
|
|
@@ -83,12 +115,8 @@ export default function createFileMap(
|
|
|
83
115
|
autoSave,
|
|
84
116
|
})),
|
|
85
117
|
perfLoggerFactory: config.unstable_perfLoggerFactory,
|
|
86
|
-
computeDependencies,
|
|
87
118
|
computeSha1: !config.watcher.unstable_lazySha1,
|
|
88
|
-
dependencyExtractor: config.resolver.dependencyExtractor,
|
|
89
|
-
enableHastePackages: config?.resolver.enableGlobalPackages,
|
|
90
119
|
enableSymlinks: true,
|
|
91
|
-
enableWorkerThreads: config.watcher.unstable_workerThreads,
|
|
92
120
|
extensions: Array.from(
|
|
93
121
|
new Set([
|
|
94
122
|
...config.resolver.sourceExts,
|
|
@@ -97,19 +125,17 @@ export default function createFileMap(
|
|
|
97
125
|
]),
|
|
98
126
|
),
|
|
99
127
|
forceNodeFilesystemAPI: !config.resolver.useWatchman,
|
|
100
|
-
hasteImplModulePath: config.resolver.hasteImplModulePath,
|
|
101
128
|
healthCheck: config.watcher.healthCheck,
|
|
102
129
|
ignorePattern: getIgnorePattern(config),
|
|
103
130
|
maxWorkers: config.maxWorkers,
|
|
104
|
-
|
|
105
|
-
platforms: [...config.resolver.platforms, MetroFileMap.H.NATIVE_PLATFORM],
|
|
131
|
+
plugins,
|
|
106
132
|
retainAllFiles: true,
|
|
107
133
|
resetCache: config.resetCache,
|
|
108
134
|
rootDir: config.projectRoot,
|
|
109
135
|
roots: config.watchFolders,
|
|
110
|
-
throwOnModuleCollision: options?.throwOnModuleCollision ?? true,
|
|
111
136
|
useWatchman: config.resolver.useWatchman,
|
|
112
137
|
watch,
|
|
113
138
|
watchmanDeferStates: config.watcher.watchman.deferStates,
|
|
114
139
|
});
|
|
140
|
+
return {fileMap, hasteMap, dependencyPlugin};
|
|
115
141
|
}
|