metro 0.65.2 → 0.67.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 +27 -27
- package/src/Assets.js +9 -9
- package/src/Assets.js.flow +5 -7
- package/src/Bundler/util.js +17 -15
- package/src/Bundler/util.js.flow +12 -10
- package/src/Bundler.js +22 -9
- package/src/Bundler.js.flow +20 -7
- package/src/DeltaBundler/DeltaCalculator.js +17 -15
- package/src/DeltaBundler/DeltaCalculator.js.flow +9 -7
- package/src/DeltaBundler/Serializers/baseBytecodeBundle.js +13 -13
- package/src/DeltaBundler/Serializers/baseBytecodeBundle.js.flow +6 -7
- package/src/DeltaBundler/Serializers/baseJSBundle.js +4 -4
- package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +4 -4
- package/src/DeltaBundler/Serializers/getAllFiles.js +1 -1
- package/src/DeltaBundler/Serializers/getAllFiles.js.flow +3 -3
- package/src/DeltaBundler/Serializers/getAssets.js +3 -3
- package/src/DeltaBundler/Serializers/getAssets.js.flow +4 -5
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.js +4 -4
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +4 -4
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js +20 -20
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +9 -10
- package/src/DeltaBundler/Serializers/helpers/bytecode.js +11 -11
- package/src/DeltaBundler/Serializers/helpers/bytecode.js.flow +5 -6
- package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +1 -1
- package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js.flow +1 -1
- package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +2 -2
- package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js.flow +4 -4
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +1 -1
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js.flow +1 -1
- package/src/DeltaBundler/Serializers/helpers/js.js +18 -8
- package/src/DeltaBundler/Serializers/helpers/js.js.flow +19 -10
- package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +4 -4
- package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js.flow +3 -3
- package/src/DeltaBundler/Serializers/helpers/processModules.js +4 -4
- package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -3
- package/src/DeltaBundler/Serializers/hmrJSBundle.js +9 -9
- package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +9 -8
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js +6 -6
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +3 -4
- package/src/DeltaBundler/Serializers/sourceMapObject.js +5 -5
- package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +4 -4
- package/src/DeltaBundler/Serializers/sourceMapString.js +2 -2
- package/src/DeltaBundler/Serializers/sourceMapString.js.flow +3 -3
- package/src/DeltaBundler/Transformer.js +16 -14
- package/src/DeltaBundler/Transformer.js.flow +15 -15
- package/src/DeltaBundler/Worker.js +8 -11
- package/src/DeltaBundler/Worker.js.flow +8 -11
- package/src/DeltaBundler/WorkerFarm.js +15 -18
- package/src/DeltaBundler/WorkerFarm.js.flow +9 -11
- package/src/DeltaBundler/__fixtures__/hasteImpl.js +2 -2
- package/src/DeltaBundler/computeDelta.js +2 -2
- package/src/DeltaBundler/computeDelta.js.flow +2 -2
- package/src/DeltaBundler/getTransformCacheKey.js +4 -4
- package/src/DeltaBundler/getTransformCacheKey.js.flow +5 -6
- package/src/DeltaBundler/mergeDeltas.js +2 -2
- package/src/DeltaBundler/mergeDeltas.js.flow +1 -1
- package/src/DeltaBundler/traverseDependencies.js +22 -22
- package/src/DeltaBundler/traverseDependencies.js.flow +3 -3
- package/src/DeltaBundler/types.flow.js +1 -1
- package/src/DeltaBundler/types.flow.js.flow +15 -1
- package/src/DeltaBundler.js +5 -5
- package/src/DeltaBundler.js.flow +4 -4
- package/src/HmrServer.js +73 -55
- package/src/HmrServer.js.flow +42 -37
- package/src/IncrementalBundler/GraphNotFoundError.js +1 -1
- package/src/IncrementalBundler/GraphNotFoundError.js.flow +1 -1
- package/src/IncrementalBundler/ResourceNotFoundError.js +1 -1
- package/src/IncrementalBundler/ResourceNotFoundError.js.flow +1 -1
- package/src/IncrementalBundler/RevisionNotFoundError.js +1 -1
- package/src/IncrementalBundler/RevisionNotFoundError.js.flow +1 -1
- package/src/IncrementalBundler.js +46 -32
- package/src/IncrementalBundler.js.flow +32 -24
- package/src/ModuleGraph/module.js +3 -3
- package/src/ModuleGraph/module.js.flow +1 -1
- package/src/ModuleGraph/node-haste/HasteFS.js +5 -3
- package/src/ModuleGraph/node-haste/HasteFS.js.flow +3 -1
- package/src/ModuleGraph/node-haste/Module.js +1 -1
- package/src/ModuleGraph/node-haste/Module.js.flow +1 -1
- package/src/ModuleGraph/node-haste/ModuleCache.js +1 -1
- package/src/ModuleGraph/node-haste/ModuleCache.js.flow +3 -3
- package/src/ModuleGraph/node-haste/Package.js +3 -3
- package/src/ModuleGraph/node-haste/Package.js.flow +3 -3
- package/src/ModuleGraph/node-haste/node-haste.flow.js +1 -1
- package/src/ModuleGraph/node-haste/node-haste.flow.js.flow +1 -1
- package/src/ModuleGraph/node-haste/node-haste.js +41 -31
- package/src/ModuleGraph/node-haste/node-haste.js.flow +28 -22
- package/src/ModuleGraph/output/indexed-ram-bundle.js +17 -17
- package/src/ModuleGraph/output/indexed-ram-bundle.js.flow +41 -9
- package/src/ModuleGraph/output/multiple-files-ram-bundle.js +18 -18
- package/src/ModuleGraph/output/multiple-files-ram-bundle.js.flow +21 -9
- package/src/ModuleGraph/output/plain-bundle.js +6 -6
- package/src/ModuleGraph/output/plain-bundle.js.flow +7 -7
- package/src/ModuleGraph/output/reverse-dependency-map-references.js +3 -3
- package/src/ModuleGraph/output/reverse-dependency-map-references.js.flow +4 -8
- package/src/ModuleGraph/output/util.js +61 -40
- package/src/ModuleGraph/output/util.js.flow +51 -28
- package/src/ModuleGraph/silent-console.js +2 -2
- package/src/ModuleGraph/silent-console.js.flow +1 -1
- package/src/ModuleGraph/test-helpers.js +7 -7
- package/src/ModuleGraph/types.flow.js +1 -1
- package/src/ModuleGraph/types.flow.js.flow +47 -31
- package/src/ModuleGraph/worker/JsFileWrapping.js +16 -16
- package/src/ModuleGraph/worker/JsFileWrapping.js.flow +3 -2
- package/src/ModuleGraph/worker/Platforms.js +2 -2
- package/src/ModuleGraph/worker/Platforms.js.flow +1 -1
- package/src/ModuleGraph/worker/collectDependencies.js +24 -25
- package/src/ModuleGraph/worker/collectDependencies.js.flow +16 -18
- package/src/ModuleGraph/worker/generate.js +2 -2
- package/src/ModuleGraph/worker/generate.js.flow +3 -3
- package/src/ModuleGraph/worker/generateImportNames.js +5 -5
- package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -5
- package/src/ModuleGraph/worker/mergeSourceMaps.js +8 -7
- package/src/ModuleGraph/worker/mergeSourceMaps.js.flow +3 -3
- package/src/Server/MultipartResponse.js +4 -8
- package/src/Server/symbolicate.js +8 -8
- package/src/Server/symbolicate.js.flow +17 -5
- package/src/Server.js +204 -150
- package/src/Server.js.flow +131 -87
- package/src/cli-utils.js +4 -4
- package/src/cli-utils.js.flow +15 -13
- package/src/cli.js +4 -4
- package/src/cli.js.flow +2 -4
- package/src/commands/build.js +23 -24
- package/src/commands/build.js.flow +6 -9
- package/src/commands/dependencies.js +25 -19
- package/src/commands/serve.js +19 -19
- package/src/commands/serve.js.flow +7 -9
- package/src/index.js +117 -50
- package/src/index.js.flow +108 -40
- package/src/integration_tests/basic_bundle/AssetRegistry.js +2 -2
- package/src/integration_tests/basic_bundle/AssetRegistry.js.flow +1 -1
- package/src/integration_tests/basic_bundle/Bar.js +2 -2
- package/src/integration_tests/basic_bundle/Bar.js.flow +1 -1
- package/src/integration_tests/basic_bundle/ErrorBundle.js +2 -2
- package/src/integration_tests/basic_bundle/ErrorBundle.js.flow +1 -1
- package/src/integration_tests/basic_bundle/Foo.js +2 -2
- package/src/integration_tests/basic_bundle/Foo.js.flow +1 -1
- package/src/integration_tests/basic_bundle/TestBundle.js +2 -2
- package/src/integration_tests/basic_bundle/TestBundle.js.flow +1 -1
- package/src/integration_tests/basic_bundle/TestPolyfill.js +1 -1
- package/src/integration_tests/basic_bundle/TestPolyfill.js.flow +1 -1
- package/src/integration_tests/basic_bundle/TypeScript.ts +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-1.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-1.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-2.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-2.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-3.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-3.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-4.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-4.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-5.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-5.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-6.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-6.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-null.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-null.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/export-primitive-default.js +2 -2
- package/src/integration_tests/basic_bundle/import-export/export-primitive-default.js.flow +1 -1
- package/src/integration_tests/basic_bundle/import-export/index.js +17 -17
- package/src/integration_tests/basic_bundle/import-export/index.js.flow +1 -1
- package/src/integration_tests/basic_bundle/polyfill.js +1 -1
- package/src/integration_tests/execBundle.js +2 -2
- package/src/integration_tests/execBundle.js.flow +1 -1
- package/src/integration_tests/metro.config.js +8 -8
- package/src/lib/BatchProcessor.js +10 -6
- package/src/lib/BatchProcessor.js.flow +6 -1
- package/src/lib/JsonReporter.js +3 -2
- package/src/lib/JsonReporter.js.flow +2 -1
- package/src/lib/RamBundleParser.js +1 -1
- package/src/lib/RamBundleParser.js.flow +1 -1
- package/src/lib/TerminalReporter.js +15 -15
- package/src/lib/TerminalReporter.js.flow +15 -16
- package/src/lib/bundleToBytecode.js +6 -7
- package/src/lib/bundleToBytecode.js.flow +8 -7
- package/src/lib/bundleToString.js +3 -3
- package/src/lib/bundleToString.js.flow +5 -4
- package/src/lib/countLines.js +3 -7
- package/src/lib/countLines.js.flow +4 -7
- package/src/lib/createModuleIdFactory.js +2 -2
- package/src/lib/createModuleIdFactory.js.flow +1 -1
- package/src/lib/{attachWebsocketServer.js → createWebsocketServer.js} +18 -17
- package/src/lib/{attachWebsocketServer.js.flow → createWebsocketServer.js.flow} +13 -23
- package/src/lib/debounceAsyncQueue.js +2 -2
- package/src/lib/debounceAsyncQueue.js.flow +1 -1
- package/src/lib/formatBundlingError.js +21 -21
- package/src/lib/formatBundlingError.js.flow +18 -20
- package/src/lib/getAppendScripts.js +26 -27
- package/src/lib/getAppendScripts.js.flow +7 -8
- package/src/lib/getGraphId.js +3 -3
- package/src/lib/getGraphId.js.flow +3 -3
- package/src/lib/getMaxWorkers.js +2 -2
- package/src/lib/getMaxWorkers.js.flow +1 -1
- package/src/lib/getPreludeCode.js +2 -2
- package/src/lib/getPreludeCode.js.flow +1 -1
- package/src/lib/getPrependedScripts.js +16 -15
- package/src/lib/getPrependedScripts.js.flow +8 -8
- package/src/lib/logToConsole.js +12 -5
- package/src/lib/logToConsole.js.flow +19 -6
- package/src/lib/parseCustomTransformOptions.js +2 -2
- package/src/lib/parseCustomTransformOptions.js.flow +3 -3
- package/src/lib/parseOptionsFromUrl.js +7 -7
- package/src/lib/parseOptionsFromUrl.js.flow +29 -9
- package/src/lib/relativizeSourceMap.js +1 -1
- package/src/lib/relativizeSourceMap.js.flow +3 -3
- package/src/lib/reporting.js +5 -5
- package/src/lib/reporting.js.flow +18 -4
- package/src/lib/splitBundleOptions.js +5 -5
- package/src/lib/splitBundleOptions.js.flow +1 -1
- package/src/lib/transformHelpers.js +11 -10
- package/src/lib/transformHelpers.js.flow +6 -13
- package/src/node-haste/DependencyGraph/ModuleResolution.js +51 -30
- package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +49 -48
- package/src/node-haste/DependencyGraph/createHasteMap.js +99 -0
- package/src/node-haste/DependencyGraph/createHasteMap.js.flow +88 -0
- package/src/node-haste/DependencyGraph/{assets/empty-module.js → types.js} +2 -2
- package/src/node-haste/DependencyGraph/types.js.flow +88 -0
- package/src/node-haste/DependencyGraph.js +51 -118
- package/src/node-haste/DependencyGraph.js.flow +38 -111
- package/src/node-haste/Module.js +1 -1
- package/src/node-haste/Module.js.flow +3 -3
- package/src/node-haste/ModuleCache.js +54 -13
- package/src/node-haste/ModuleCache.js.flow +53 -12
- package/src/node-haste/Package.js +2 -2
- package/src/node-haste/Package.js.flow +1 -1
- package/src/node-haste/lib/AssetPaths.js +5 -5
- package/src/node-haste/lib/AssetPaths.js.flow +7 -6
- package/src/node-haste/lib/parsePlatformFilePath.js +4 -4
- package/src/node-haste/lib/parsePlatformFilePath.js.flow +2 -2
- package/src/shared/output/RamBundle/as-assets.js +14 -15
- package/src/shared/output/RamBundle/as-assets.js.flow +9 -11
- package/src/shared/output/RamBundle/as-indexed-file.js +14 -15
- package/src/shared/output/RamBundle/as-indexed-file.js.flow +8 -12
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +7 -7
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +4 -4
- package/src/shared/output/RamBundle/magic-number.js +1 -1
- package/src/shared/output/RamBundle/magic-number.js.flow +1 -1
- package/src/shared/output/RamBundle/util.js +21 -19
- package/src/shared/output/RamBundle/util.js.flow +5 -8
- package/src/shared/output/RamBundle/write-sourcemap.js +1 -1
- package/src/shared/output/RamBundle/write-sourcemap.js.flow +1 -1
- package/src/shared/output/RamBundle.js +2 -2
- package/src/shared/output/RamBundle.js.flow +4 -5
- package/src/shared/output/bundle.js +6 -6
- package/src/shared/output/bundle.js.flow +4 -5
- package/src/shared/output/meta.js +4 -5
- package/src/shared/output/meta.js.flow +2 -4
- package/src/shared/output/unbundle.js +1 -1
- package/src/shared/output/unbundle.js.flow +1 -1
- package/src/shared/output/writeFile.js +1 -1
- package/src/shared/output/writeFile.js.flow +1 -1
- package/src/shared/types.flow.js +1 -1
- package/src/shared/types.flow.js.flow +6 -4
- package/src/node-haste/DependencyGraph/assets/empty-module.js.flow +0 -9
- package/src/node-haste/types.js +0 -10
- package/src/node-haste/types.js.flow +0 -23
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
import type {FunctionExpression, Identifier, Program} from '@babel/types';
|
|
14
|
+
|
|
13
15
|
import template from '@babel/template';
|
|
14
16
|
import traverse from '@babel/traverse';
|
|
15
17
|
import * as t from '@babel/types';
|
|
16
|
-
import type {Program, FunctionExpression, Identifier} from '@babel/types';
|
|
17
18
|
import invariant from 'invariant';
|
|
18
19
|
|
|
19
20
|
const WRAP_NAME = '$$_REQUIRE'; // note: babel will prefix this with _
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
|
|
18
18
|
const VALID_PLATFORMS = new Set(["ios", "android", "web"]);
|
|
19
19
|
module.exports = {
|
|
20
|
-
VALID_PLATFORMS
|
|
20
|
+
VALID_PLATFORMS,
|
|
21
21
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -9,10 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
"use strict";
|
|
11
11
|
|
|
12
|
-
const invariant = require("invariant");
|
|
13
|
-
|
|
14
|
-
const nullthrows = require("nullthrows");
|
|
15
|
-
|
|
16
12
|
const generate = require("@babel/generator").default;
|
|
17
13
|
|
|
18
14
|
const template = require("@babel/template").default;
|
|
@@ -21,6 +17,10 @@ const traverse = require("@babel/traverse").default;
|
|
|
21
17
|
|
|
22
18
|
const types = require("@babel/types");
|
|
23
19
|
|
|
20
|
+
const invariant = require("invariant");
|
|
21
|
+
|
|
22
|
+
const nullthrows = require("nullthrows");
|
|
23
|
+
|
|
24
24
|
const { isImport } = types;
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -52,7 +52,7 @@ function collectDependencies(ast, options) {
|
|
|
52
52
|
dependencyMapIdentifier: null,
|
|
53
53
|
dynamicRequires: options.dynamicRequires,
|
|
54
54
|
keepRequireNames: options.keepRequireNames,
|
|
55
|
-
allowOptionalDependencies: options.allowOptionalDependencies
|
|
55
|
+
allowOptionalDependencies: options.allowOptionalDependencies,
|
|
56
56
|
};
|
|
57
57
|
const visitor = {
|
|
58
58
|
CallExpression(path, state) {
|
|
@@ -65,14 +65,14 @@ function collectDependencies(ast, options) {
|
|
|
65
65
|
|
|
66
66
|
if (isImport(callee)) {
|
|
67
67
|
processImportCall(path, state, {
|
|
68
|
-
asyncType: "async"
|
|
68
|
+
asyncType: "async",
|
|
69
69
|
});
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
if (name === "__prefetchImport" && !path.scope.getBinding(name)) {
|
|
74
74
|
processImportCall(path, state, {
|
|
75
|
-
asyncType: "prefetch"
|
|
75
|
+
asyncType: "prefetch",
|
|
76
76
|
});
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
@@ -80,7 +80,7 @@ function collectDependencies(ast, options) {
|
|
|
80
80
|
if (name === "__jsResource" && !path.scope.getBinding(name)) {
|
|
81
81
|
processImportCall(path, state, {
|
|
82
82
|
asyncType: "async",
|
|
83
|
-
jsResource: true
|
|
83
|
+
jsResource: true,
|
|
84
84
|
});
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
@@ -94,7 +94,7 @@ function collectDependencies(ast, options) {
|
|
|
94
94
|
processImportCall(path, state, {
|
|
95
95
|
asyncType: "async",
|
|
96
96
|
jsResource: true,
|
|
97
|
-
splitCondition: args[1]
|
|
97
|
+
splitCondition: args[1],
|
|
98
98
|
});
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
@@ -123,13 +123,12 @@ function collectDependencies(ast, options) {
|
|
|
123
123
|
options.dependencyMapName
|
|
124
124
|
);
|
|
125
125
|
} else {
|
|
126
|
-
state.dependencyMapIdentifier =
|
|
127
|
-
"dependencyMap"
|
|
128
|
-
);
|
|
126
|
+
state.dependencyMapIdentifier =
|
|
127
|
+
path.scope.generateUidIdentifier("dependencyMap");
|
|
129
128
|
}
|
|
130
129
|
|
|
131
130
|
state.dependencyCalls = new Set(["require", ...options.inlineableCalls]);
|
|
132
|
-
}
|
|
131
|
+
},
|
|
133
132
|
};
|
|
134
133
|
traverse(ast, visitor, null, state);
|
|
135
134
|
const collectedDependencies = state.dependencyRegistry.getDependencies(); // Compute the list of dependencies.
|
|
@@ -139,14 +138,14 @@ function collectDependencies(ast, options) {
|
|
|
139
138
|
for (const { index, name, ...dependencyData } of collectedDependencies) {
|
|
140
139
|
dependencies[index] = {
|
|
141
140
|
name,
|
|
142
|
-
data: dependencyData
|
|
141
|
+
data: dependencyData,
|
|
143
142
|
};
|
|
144
143
|
}
|
|
145
144
|
|
|
146
145
|
return {
|
|
147
146
|
ast,
|
|
148
147
|
dependencies,
|
|
149
|
-
dependencyMapName: nullthrows(state.dependencyMapIdentifier).name
|
|
148
|
+
dependencyMapName: nullthrows(state.dependencyMapIdentifier).name,
|
|
150
149
|
};
|
|
151
150
|
}
|
|
152
151
|
|
|
@@ -157,7 +156,7 @@ function collectImports(path, state) {
|
|
|
157
156
|
{
|
|
158
157
|
name: path.node.source.value,
|
|
159
158
|
asyncType: null,
|
|
160
|
-
optional: false
|
|
159
|
+
optional: false,
|
|
161
160
|
},
|
|
162
161
|
path
|
|
163
162
|
);
|
|
@@ -177,7 +176,7 @@ function processImportCall(path, state, options) {
|
|
|
177
176
|
name,
|
|
178
177
|
asyncType: options.asyncType,
|
|
179
178
|
splitCondition: options.splitCondition,
|
|
180
|
-
optional: isOptionalDependency(name, path, state)
|
|
179
|
+
optional: isOptionalDependency(name, path, state),
|
|
181
180
|
},
|
|
182
181
|
path
|
|
183
182
|
);
|
|
@@ -210,7 +209,7 @@ function processRequireCall(path, state) {
|
|
|
210
209
|
{
|
|
211
210
|
name,
|
|
212
211
|
asyncType: null,
|
|
213
|
-
optional: isOptionalDependency(name, path, state)
|
|
212
|
+
optional: isOptionalDependency(name, path, state),
|
|
214
213
|
},
|
|
215
214
|
path
|
|
216
215
|
);
|
|
@@ -361,7 +360,7 @@ const DefaultDependencyTransformer = {
|
|
|
361
360
|
state.asyncRequireModulePathStringLiteral
|
|
362
361
|
),
|
|
363
362
|
MODULE_ID: createModuleIDExpression(dependency, state),
|
|
364
|
-
MODULE_NAME: createModuleNameLiteral(dependency)
|
|
363
|
+
MODULE_NAME: createModuleNameLiteral(dependency),
|
|
365
364
|
})
|
|
366
365
|
);
|
|
367
366
|
},
|
|
@@ -373,7 +372,7 @@ const DefaultDependencyTransformer = {
|
|
|
373
372
|
state.asyncRequireModulePathStringLiteral
|
|
374
373
|
),
|
|
375
374
|
MODULE_ID: createModuleIDExpression(dependency, state),
|
|
376
|
-
MODULE_NAME: createModuleNameLiteral(dependency)
|
|
375
|
+
MODULE_NAME: createModuleNameLiteral(dependency),
|
|
377
376
|
})
|
|
378
377
|
);
|
|
379
378
|
},
|
|
@@ -385,7 +384,7 @@ const DefaultDependencyTransformer = {
|
|
|
385
384
|
state.asyncRequireModulePathStringLiteral
|
|
386
385
|
),
|
|
387
386
|
MODULE_ID: createModuleIDExpression(dependency, state),
|
|
388
|
-
MODULE_NAME: createModuleNameLiteral(dependency)
|
|
387
|
+
MODULE_NAME: createModuleNameLiteral(dependency),
|
|
389
388
|
})
|
|
390
389
|
);
|
|
391
390
|
},
|
|
@@ -404,10 +403,10 @@ const DefaultDependencyTransformer = {
|
|
|
404
403
|
_path$node$loc$start$ !== void 0
|
|
405
404
|
? _path$node$loc$start$
|
|
406
405
|
: 0
|
|
407
|
-
)
|
|
406
|
+
),
|
|
408
407
|
})
|
|
409
408
|
);
|
|
410
|
-
}
|
|
409
|
+
},
|
|
411
410
|
};
|
|
412
411
|
|
|
413
412
|
function createModuleIDExpression(dependency, state) {
|
|
@@ -433,7 +432,7 @@ class DefaultModuleDependencyRegistry {
|
|
|
433
432
|
name: qualifier.name,
|
|
434
433
|
asyncType: qualifier.asyncType,
|
|
435
434
|
locs: [],
|
|
436
|
-
index: this._dependencies.size
|
|
435
|
+
index: this._dependencies.size,
|
|
437
436
|
};
|
|
438
437
|
|
|
439
438
|
if (qualifier.optional) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,23 +10,22 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
import type {NodePath} from '@babel/traverse';
|
|
14
|
+
import type {CallExpression, Identifier, StringLiteral} from '@babel/types';
|
|
15
|
+
import type {
|
|
16
|
+
AllowOptionalDependencies,
|
|
17
|
+
AsyncDependencyType,
|
|
18
|
+
} from 'metro/src/DeltaBundler/types.flow.js';
|
|
15
19
|
|
|
16
20
|
const generate = require('@babel/generator').default;
|
|
17
21
|
const template = require('@babel/template').default;
|
|
18
22
|
const traverse = require('@babel/traverse').default;
|
|
19
23
|
const types = require('@babel/types');
|
|
24
|
+
const invariant = require('invariant');
|
|
25
|
+
const nullthrows = require('nullthrows');
|
|
20
26
|
|
|
21
27
|
const {isImport} = types;
|
|
22
28
|
|
|
23
|
-
import type {NodePath} from '@babel/traverse';
|
|
24
|
-
import type {CallExpression, Identifier, StringLiteral} from '@babel/types';
|
|
25
|
-
import type {
|
|
26
|
-
AllowOptionalDependencies,
|
|
27
|
-
AsyncDependencyType,
|
|
28
|
-
} from 'metro/src/DeltaBundler/types.flow.js';
|
|
29
|
-
|
|
30
29
|
type ImportDependencyOptions = $ReadOnly<{
|
|
31
30
|
asyncType: AsyncDependencyType,
|
|
32
31
|
jsResource?: boolean,
|
|
@@ -71,7 +70,7 @@ export type State<TSplitCondition> = {
|
|
|
71
70
|
|
|
72
71
|
export type Options<TSplitCondition = void> = $ReadOnly<{
|
|
73
72
|
asyncRequireModulePath: string,
|
|
74
|
-
dependencyMapName
|
|
73
|
+
dependencyMapName: ?string,
|
|
75
74
|
dynamicRequires: DynamicRequiresBehavior,
|
|
76
75
|
inlineableCalls: $ReadOnlyArray<string>,
|
|
77
76
|
keepRequireNames: boolean,
|
|
@@ -224,9 +223,8 @@ function collectDependencies<TSplitCondition = void>(
|
|
|
224
223
|
options.dependencyMapName,
|
|
225
224
|
);
|
|
226
225
|
} else {
|
|
227
|
-
state.dependencyMapIdentifier =
|
|
228
|
-
'dependencyMap'
|
|
229
|
-
);
|
|
226
|
+
state.dependencyMapIdentifier =
|
|
227
|
+
path.scope.generateUidIdentifier('dependencyMap');
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
state.dependencyCalls = new Set(['require', ...options.inlineableCalls]);
|
|
@@ -549,15 +547,15 @@ function createModuleNameLiteral(dependency: InternalDependency<mixed>) {
|
|
|
549
547
|
}
|
|
550
548
|
|
|
551
549
|
class DefaultModuleDependencyRegistry<TSplitCondition = void>
|
|
552
|
-
implements ModuleDependencyRegistry<TSplitCondition>
|
|
550
|
+
implements ModuleDependencyRegistry<TSplitCondition>
|
|
551
|
+
{
|
|
553
552
|
_dependencies: Map<string, InternalDependency<TSplitCondition>> = new Map();
|
|
554
553
|
|
|
555
554
|
registerDependency(
|
|
556
555
|
qualifier: ImportQualifier,
|
|
557
556
|
): InternalDependency<TSplitCondition> {
|
|
558
|
-
let dependency: ?InternalDependency<TSplitCondition> =
|
|
559
|
-
qualifier.name
|
|
560
|
-
);
|
|
557
|
+
let dependency: ?InternalDependency<TSplitCondition> =
|
|
558
|
+
this._dependencies.get(qualifier.name);
|
|
561
559
|
|
|
562
560
|
if (dependency == null) {
|
|
563
561
|
const newDependency: MutableInternalDependency<TSplitCondition> = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -20,7 +20,7 @@ function generate(ast, filename, sourceCode) {
|
|
|
20
20
|
filename,
|
|
21
21
|
sourceFileName: filename,
|
|
22
22
|
sourceMaps: true,
|
|
23
|
-
sourceMapTarget: filename
|
|
23
|
+
sourceMapTarget: filename,
|
|
24
24
|
},
|
|
25
25
|
sourceCode
|
|
26
26
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const babelGenerate = require('@babel/generator').default;
|
|
14
|
-
|
|
15
13
|
import type {GeneratorResult} from '@babel/generator';
|
|
16
14
|
|
|
15
|
+
const babelGenerate = require('@babel/generator').default;
|
|
16
|
+
|
|
17
17
|
function generate(
|
|
18
18
|
ast: BabelNode,
|
|
19
19
|
filename: string,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
"use strict";
|
|
11
11
|
|
|
12
|
-
const nullthrows = require("nullthrows");
|
|
13
|
-
|
|
14
12
|
const traverse = require("@babel/traverse").default;
|
|
13
|
+
|
|
14
|
+
const nullthrows = require("nullthrows");
|
|
15
15
|
/**
|
|
16
16
|
* Select unused names for "metroImportDefault" and "metroImportAll", by
|
|
17
17
|
* calling "generateUid".
|
|
@@ -25,11 +25,11 @@ function generateImportNames(ast) {
|
|
|
25
25
|
importAll = path.scope.generateUid("$$_IMPORT_ALL");
|
|
26
26
|
importDefault = path.scope.generateUid("$$_IMPORT_DEFAULT");
|
|
27
27
|
path.stop();
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
29
|
});
|
|
30
30
|
return {
|
|
31
31
|
importAll: nullthrows(importAll),
|
|
32
|
-
importDefault: nullthrows(importDefault)
|
|
32
|
+
importDefault: nullthrows(importDefault),
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,16 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const nullthrows = require('nullthrows');
|
|
14
13
|
const traverse = require('@babel/traverse').default;
|
|
14
|
+
const nullthrows = require('nullthrows');
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Select unused names for "metroImportDefault" and "metroImportAll", by
|
|
18
18
|
* calling "generateUid".
|
|
19
19
|
*/
|
|
20
|
-
function generateImportNames(
|
|
21
|
-
ast: BabelNode,
|
|
22
|
-
): {
|
|
20
|
+
function generateImportNames(ast: BabelNode): {
|
|
23
21
|
importAll: string,
|
|
24
22
|
importDefault: string,
|
|
25
23
|
} {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,21 +7,22 @@
|
|
|
7
7
|
* @format
|
|
8
8
|
*
|
|
9
9
|
*/
|
|
10
|
-
"use strict";
|
|
10
|
+
"use strict";
|
|
11
11
|
|
|
12
|
+
// $FlowExpectedError: TODO(t67543266): `source-map` is hard to type.
|
|
12
13
|
const sourceMap = require("source-map");
|
|
13
14
|
|
|
14
15
|
function mergeSourceMaps(file, originalMap, secondMap) {
|
|
15
16
|
const merged = new sourceMap.SourceMapGenerator();
|
|
16
17
|
const inputMap = new sourceMap.SourceMapConsumer(originalMap);
|
|
17
|
-
new sourceMap.SourceMapConsumer(secondMap).eachMapping(mapping => {
|
|
18
|
+
new sourceMap.SourceMapConsumer(secondMap).eachMapping((mapping) => {
|
|
18
19
|
if (mapping.originalLine == null) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
const original = inputMap.originalPositionFor({
|
|
23
24
|
line: mapping.originalLine,
|
|
24
|
-
column: mapping.originalColumn
|
|
25
|
+
column: mapping.originalColumn,
|
|
25
26
|
});
|
|
26
27
|
|
|
27
28
|
if (original.line == null) {
|
|
@@ -31,14 +32,14 @@ function mergeSourceMaps(file, originalMap, secondMap) {
|
|
|
31
32
|
merged.addMapping({
|
|
32
33
|
generated: {
|
|
33
34
|
line: mapping.generatedLine,
|
|
34
|
-
column: mapping.generatedColumn
|
|
35
|
+
column: mapping.generatedColumn,
|
|
35
36
|
},
|
|
36
37
|
original: {
|
|
37
38
|
line: original.line,
|
|
38
|
-
column: original.column || 0
|
|
39
|
+
column: original.column || 0,
|
|
39
40
|
},
|
|
40
41
|
source: file,
|
|
41
|
-
name: original.name || mapping.name
|
|
42
|
+
name: original.name || mapping.name,
|
|
42
43
|
});
|
|
43
44
|
});
|
|
44
45
|
return { ...merged.toJSON(), sources: inputMap.sources };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
import type {BasicSourceMap, MixedSourceMap} from 'metro-source-map';
|
|
14
|
+
|
|
13
15
|
// $FlowExpectedError: TODO(t67543266): `source-map` is hard to type.
|
|
14
16
|
const sourceMap = require('source-map');
|
|
15
17
|
|
|
16
|
-
import type {MixedSourceMap, BasicSourceMap} from 'metro-source-map';
|
|
17
|
-
|
|
18
18
|
function mergeSourceMaps(
|
|
19
19
|
file: string,
|
|
20
20
|
originalMap: MixedSourceMap,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -15,11 +15,7 @@ const BOUNDARY = "3beqjf3apnqeu3h5jqorms4i";
|
|
|
15
15
|
|
|
16
16
|
class MultipartResponse {
|
|
17
17
|
static wrap(req, res) {
|
|
18
|
-
if (
|
|
19
|
-
accepts(req)
|
|
20
|
-
.types()
|
|
21
|
-
.includes("multipart/mixed")
|
|
22
|
-
) {
|
|
18
|
+
if (accepts(req).types().includes("multipart/mixed")) {
|
|
23
19
|
return new MultipartResponse(res);
|
|
24
20
|
} // Ugly hack, ideally wrap function should always return a proxy
|
|
25
21
|
// object with the same interface
|
|
@@ -33,7 +29,7 @@ class MultipartResponse {
|
|
|
33
29
|
this.res = res;
|
|
34
30
|
this.headers = {};
|
|
35
31
|
res.writeHead(200, {
|
|
36
|
-
"Content-Type": `multipart/mixed; boundary="${BOUNDARY}"
|
|
32
|
+
"Content-Type": `multipart/mixed; boundary="${BOUNDARY}"`,
|
|
37
33
|
});
|
|
38
34
|
res.write(
|
|
39
35
|
"If you are seeing this, your client does not support multipart response"
|
|
@@ -85,7 +81,7 @@ class MultipartResponse {
|
|
|
85
81
|
|
|
86
82
|
static serializeHeaders(headers) {
|
|
87
83
|
return Object.keys(headers)
|
|
88
|
-
.map(key => `${key}: ${headers[key]}`)
|
|
84
|
+
.map((key) => `${key}: ${headers[key]}`)
|
|
89
85
|
.join(CRLF);
|
|
90
86
|
}
|
|
91
87
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
const { greatestLowerBound } = require("metro-source-map/src/Consumer/search");
|
|
13
13
|
|
|
14
14
|
const {
|
|
15
|
-
SourceMetadataMapConsumer
|
|
15
|
+
SourceMetadataMapConsumer,
|
|
16
16
|
} = require("metro-symbolicate/src/Symbolication");
|
|
17
17
|
|
|
18
18
|
function createFunctionNameGetter(module) {
|
|
@@ -22,16 +22,16 @@ function createFunctionNameGetter(module) {
|
|
|
22
22
|
mappings: "",
|
|
23
23
|
sources: ["dummy"],
|
|
24
24
|
names: [],
|
|
25
|
-
x_facebook_sources: [[module.functionMap]]
|
|
25
|
+
x_facebook_sources: [[module.functionMap]],
|
|
26
26
|
},
|
|
27
|
-
name => name
|
|
27
|
+
(name) => name
|
|
28
28
|
/* no normalization needed */
|
|
29
29
|
);
|
|
30
30
|
return ({ line1Based, column0Based }) =>
|
|
31
31
|
consumer.functionNameFor({
|
|
32
32
|
line: line1Based,
|
|
33
33
|
column: column0Based,
|
|
34
|
-
source: "dummy"
|
|
34
|
+
source: "dummy",
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -75,7 +75,7 @@ async function symbolicate(stack, maps, config) {
|
|
|
75
75
|
|
|
76
76
|
const generatedPosInModule = {
|
|
77
77
|
line1Based: frame.lineNumber - module.firstLine1Based + 1,
|
|
78
|
-
column0Based: frame.column
|
|
78
|
+
column0Based: frame.column,
|
|
79
79
|
};
|
|
80
80
|
const mappingIndex = greatestLowerBound(
|
|
81
81
|
module.map,
|
|
@@ -107,7 +107,7 @@ async function symbolicate(stack, maps, config) {
|
|
|
107
107
|
// $FlowFixMe: Length checks do not refine tuple unions.
|
|
108
108
|
line1Based: mapping[2],
|
|
109
109
|
// $FlowFixMe: Length checks do not refine tuple unions.
|
|
110
|
-
column0Based: mapping[3]
|
|
110
|
+
column0Based: mapping[3],
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -157,7 +157,7 @@ async function symbolicate(stack, maps, config) {
|
|
|
157
157
|
methodName,
|
|
158
158
|
file: module.path,
|
|
159
159
|
lineNumber: originalPos.line1Based,
|
|
160
|
-
column: originalPos.column0Based
|
|
160
|
+
column: originalPos.column0Based,
|
|
161
161
|
};
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -9,15 +9,19 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
|
+
import type {
|
|
13
|
+
MetroSourceMapSegmentTuple,
|
|
14
|
+
FBSourceFunctionMap,
|
|
15
|
+
} from '../../../metro-source-map/src/source-map';
|
|
16
|
+
|
|
17
|
+
import type {ExplodedSourceMap} from '../DeltaBundler/Serializers/getExplodedSourceMap';
|
|
18
|
+
import type {ConfigT} from 'metro-config/src/configTypes.flow';
|
|
12
19
|
|
|
13
20
|
const {greatestLowerBound} = require('metro-source-map/src/Consumer/search');
|
|
14
21
|
const {
|
|
15
22
|
SourceMetadataMapConsumer,
|
|
16
23
|
} = require('metro-symbolicate/src/Symbolication');
|
|
17
24
|
|
|
18
|
-
import type {ExplodedSourceMap} from '../DeltaBundler/Serializers/getExplodedSourceMap';
|
|
19
|
-
import type {ConfigT} from 'metro-config/src/configTypes.flow';
|
|
20
|
-
|
|
21
25
|
export type StackFrameInput = {
|
|
22
26
|
+file: ?string,
|
|
23
27
|
+lineNumber: ?number,
|
|
@@ -124,7 +128,15 @@ async function symbolicate(
|
|
|
124
128
|
};
|
|
125
129
|
}
|
|
126
130
|
|
|
127
|
-
function findFunctionName(
|
|
131
|
+
function findFunctionName(
|
|
132
|
+
originalPos: Position,
|
|
133
|
+
module: {
|
|
134
|
+
+firstLine1Based: number,
|
|
135
|
+
+functionMap: ?FBSourceFunctionMap,
|
|
136
|
+
+map: Array<MetroSourceMapSegmentTuple>,
|
|
137
|
+
+path: string,
|
|
138
|
+
},
|
|
139
|
+
): ?string {
|
|
128
140
|
if (module.functionMap) {
|
|
129
141
|
let getFunctionName = functionNameGetters.get(module);
|
|
130
142
|
if (!getFunctionName) {
|