metro 0.83.0 → 0.83.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +16 -16
- package/src/Assets.js +68 -42
- package/src/Assets.js.flow +13 -24
- package/src/Bundler/util.js +40 -17
- package/src/Bundler/util.js.flow +6 -13
- package/src/Bundler.js +17 -6
- package/src/Bundler.js.flow +3 -7
- package/src/DeltaBundler/DeltaCalculator.js +15 -15
- package/src/DeltaBundler/DeltaCalculator.js.flow +4 -7
- package/src/DeltaBundler/Graph.js +45 -40
- package/src/DeltaBundler/Graph.js.flow +3 -4
- package/src/DeltaBundler/Serializers/baseJSBundle.js +24 -10
- package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +6 -9
- package/src/DeltaBundler/Serializers/getAllFiles.js +9 -6
- package/src/DeltaBundler/Serializers/getAllFiles.js.flow +4 -8
- package/src/DeltaBundler/Serializers/getAssets.js +18 -11
- package/src/DeltaBundler/Serializers/getAssets.js.flow +5 -9
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.d.ts +26 -0
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.js +7 -6
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +3 -9
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js +40 -23
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +11 -18
- package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +4 -1
- package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js.flow +1 -5
- package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +7 -4
- package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js.flow +3 -7
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +4 -1
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js.flow +2 -6
- package/src/DeltaBundler/Serializers/helpers/js.js +65 -31
- package/src/DeltaBundler/Serializers/helpers/js.js.flow +21 -21
- package/src/DeltaBundler/Serializers/helpers/processModules.js +8 -5
- package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -7
- package/src/DeltaBundler/Serializers/hmrJSBundle.js +70 -25
- package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +43 -33
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js +19 -16
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +6 -14
- package/src/DeltaBundler/Serializers/sourceMapObject.js +12 -10
- package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +4 -9
- package/src/DeltaBundler/Serializers/sourceMapString.js +14 -12
- package/src/DeltaBundler/Serializers/sourceMapString.js.flow +4 -9
- package/src/DeltaBundler/Transformer.js +32 -27
- package/src/DeltaBundler/Transformer.js.flow +10 -17
- package/src/DeltaBundler/Worker.flow.js +25 -18
- package/src/DeltaBundler/Worker.flow.js.flow +12 -18
- package/src/DeltaBundler/Worker.js.flow +2 -0
- package/src/DeltaBundler/WorkerFarm.js +13 -11
- package/src/DeltaBundler/WorkerFarm.js.flow +7 -9
- package/src/DeltaBundler/buildSubgraph.js +13 -17
- package/src/DeltaBundler/buildSubgraph.js.flow +1 -1
- package/src/DeltaBundler/getTransformCacheKey.js +12 -6
- package/src/DeltaBundler/getTransformCacheKey.js.flow +5 -7
- package/src/DeltaBundler/mergeDeltas.js +4 -1
- package/src/DeltaBundler/mergeDeltas.js.flow +5 -6
- package/src/DeltaBundler/types.d.ts +4 -1
- package/src/DeltaBundler/{types.flow.js → types.js} +1 -5
- package/src/DeltaBundler/{types.flow.js.flow → types.js.flow} +5 -3
- package/src/DeltaBundler.js +15 -6
- package/src/DeltaBundler.js.flow +4 -8
- package/src/HmrServer.js +116 -68
- package/src/HmrServer.js.flow +41 -52
- package/src/IncrementalBundler/GraphNotFoundError.js +5 -1
- package/src/IncrementalBundler/GraphNotFoundError.js.flow +1 -5
- package/src/IncrementalBundler/ResourceNotFoundError.js +5 -1
- package/src/IncrementalBundler/ResourceNotFoundError.js.flow +1 -5
- package/src/IncrementalBundler/RevisionNotFoundError.js +5 -1
- package/src/IncrementalBundler/RevisionNotFoundError.js.flow +1 -5
- package/src/IncrementalBundler.js +71 -35
- package/src/IncrementalBundler.js.flow +12 -16
- package/src/ModuleGraph/test-helpers.js +19 -14
- package/src/ModuleGraph/worker/JsFileWrapping.js +22 -29
- package/src/ModuleGraph/worker/JsFileWrapping.js.flow +1 -10
- package/src/ModuleGraph/worker/collectDependencies.js +81 -52
- package/src/ModuleGraph/worker/collectDependencies.js.flow +15 -22
- package/src/ModuleGraph/worker/generateImportNames.js +12 -6
- package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -7
- package/src/ModuleGraph/worker/importLocationsPlugin.js +5 -4
- package/src/ModuleGraph/worker/importLocationsPlugin.js.flow +2 -4
- package/src/Server/MultipartResponse.js +11 -4
- package/src/Server/MultipartResponse.js.flow +2 -5
- package/src/Server/symbolicate.d.ts +31 -0
- package/src/Server/symbolicate.js +15 -16
- package/src/Server/symbolicate.js.flow +6 -16
- package/src/Server.d.ts +0 -1
- package/src/Server.js +298 -191
- package/src/Server.js.flow +136 -99
- package/src/cli-utils.js +13 -4
- package/src/cli-utils.js.flow +3 -5
- package/src/cli.js.flow +2 -0
- package/src/commands/build.js +18 -15
- package/src/commands/build.js.flow +6 -6
- package/src/commands/dependencies.js +26 -16
- package/src/commands/dependencies.js.flow +7 -9
- package/src/commands/serve.js +16 -11
- package/src/commands/serve.js.flow +5 -6
- package/src/index.d.ts +26 -3
- package/src/index.flow.js +162 -72
- package/src/index.flow.js.flow +60 -47
- package/src/index.js.flow +2 -0
- package/src/integration_tests/basic_bundle/TestBundle.js.flow +2 -1
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js +1 -5
- package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js +1 -5
- package/src/integration_tests/basic_bundle/import-export/index.js +5 -13
- package/src/integration_tests/basic_bundle/require-context/mode-eager.js +2 -2
- package/src/integration_tests/basic_bundle/require-context/mode-lazy-once.js +2 -2
- package/src/integration_tests/basic_bundle/require-context/mode-lazy.js +2 -2
- package/src/integration_tests/basic_bundle/require-context/mode-sync.js +1 -1
- package/src/integration_tests/basic_bundle/require-context/utils.js +1 -1
- package/src/integration_tests/execBundle.js +7 -4
- package/src/integration_tests/execBundle.js.flow +1 -3
- package/src/integration_tests/metro.config.js +3 -3
- package/src/lib/BatchProcessor.js +15 -5
- package/src/lib/BatchProcessor.js.flow +2 -6
- package/src/lib/CountingSet.js.flow +2 -2
- package/src/lib/JsonReporter.js +6 -2
- package/src/lib/JsonReporter.js.flow +1 -5
- package/src/lib/RamBundleParser.js +12 -3
- package/src/lib/RamBundleParser.js.flow +2 -6
- package/src/lib/TerminalReporter.js +95 -56
- package/src/lib/TerminalReporter.js.flow +9 -12
- package/src/lib/bundleToString.js +4 -1
- package/src/lib/bundleToString.js.flow +2 -9
- package/src/lib/contextModule.js +3 -7
- package/src/lib/contextModuleTemplates.js +9 -19
- package/src/lib/countLines.js +5 -1
- package/src/lib/countLines.js.flow +1 -3
- package/src/lib/createWebsocketServer.js +7 -7
- package/src/lib/createWebsocketServer.js.flow +4 -4
- package/src/lib/debounceAsyncQueue.js +4 -1
- package/src/lib/debounceAsyncQueue.js.flow +1 -5
- package/src/lib/formatBundlingError.js +32 -22
- package/src/lib/formatBundlingError.js.flow +18 -20
- package/src/lib/getAppendScripts.js +20 -20
- package/src/lib/getAppendScripts.js.flow +9 -13
- package/src/lib/getGraphId.js +12 -6
- package/src/lib/getGraphId.js.flow +4 -10
- package/src/lib/getPreludeCode.js +7 -10
- package/src/lib/getPreludeCode.js.flow +2 -6
- package/src/lib/getPrependedScripts.js +40 -16
- package/src/lib/getPrependedScripts.js.flow +8 -13
- package/src/lib/isResolvedDependency.js.flow +1 -1
- package/src/lib/logToConsole.js +18 -12
- package/src/lib/logToConsole.js.flow +5 -14
- package/src/lib/parseBundleOptionsFromBundleRequestUrl.js +144 -0
- package/src/lib/parseBundleOptionsFromBundleRequestUrl.js.flow +146 -0
- package/src/lib/parseCustomResolverOptions.js +8 -6
- package/src/lib/parseCustomResolverOptions.js.flow +6 -12
- package/src/lib/parseCustomTransformOptions.js +8 -6
- package/src/lib/parseCustomTransformOptions.js.flow +11 -14
- package/src/lib/parseJsonBody.js +4 -1
- package/src/lib/parseJsonBody.js.flow +1 -3
- package/src/lib/pathUtils.js +34 -0
- package/src/lib/pathUtils.js.flow +16 -0
- package/src/lib/relativizeSourceMap.js +12 -3
- package/src/lib/relativizeSourceMap.js.flow +2 -6
- package/src/lib/reporting.js +25 -19
- package/src/lib/reporting.js.flow +6 -16
- package/src/lib/splitBundleOptions.js +4 -2
- package/src/lib/splitBundleOptions.js.flow +4 -7
- package/src/lib/transformHelpers.js +19 -25
- package/src/lib/transformHelpers.js.flow +5 -15
- package/src/node-haste/DependencyGraph/ModuleResolution.js +75 -57
- package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +28 -44
- package/src/node-haste/DependencyGraph/createFileMap.js +15 -13
- package/src/node-haste/DependencyGraph/createFileMap.js.flow +2 -5
- package/src/node-haste/DependencyGraph.js +61 -45
- package/src/node-haste/DependencyGraph.js.flow +34 -31
- package/src/node-haste/Package.js +13 -6
- package/src/node-haste/Package.js.flow +3 -7
- package/src/node-haste/{ModuleCache.js → PackageCache.js} +11 -19
- package/src/node-haste/{ModuleCache.js.flow → PackageCache.js.flow} +2 -30
- package/src/node-haste/lib/AssetPaths.js +14 -8
- package/src/node-haste/lib/AssetPaths.js.flow +7 -8
- package/src/node-haste/lib/parsePlatformFilePath.js +10 -4
- package/src/node-haste/lib/parsePlatformFilePath.js.flow +2 -6
- package/src/shared/output/RamBundle/as-assets.js +42 -22
- package/src/shared/output/RamBundle/as-assets.js.flow +12 -15
- package/src/shared/output/RamBundle/as-indexed-file.js +33 -23
- package/src/shared/output/RamBundle/as-indexed-file.js.flow +10 -16
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +11 -10
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +4 -6
- package/src/shared/output/RamBundle/magic-number.js +5 -1
- package/src/shared/output/RamBundle/magic-number.js.flow +1 -3
- package/src/shared/output/RamBundle/util.js +21 -18
- package/src/shared/output/RamBundle/util.js.flow +4 -6
- package/src/shared/output/RamBundle/write-sourcemap.js +9 -3
- package/src/shared/output/RamBundle/write-sourcemap.js.flow +2 -6
- package/src/shared/output/RamBundle.js +16 -9
- package/src/shared/output/RamBundle.js.flow +8 -12
- package/src/shared/output/bundle.flow.js +37 -13
- package/src/shared/output/bundle.flow.js.flow +24 -12
- package/src/shared/output/bundle.js.flow +2 -0
- package/src/shared/output/meta.js +16 -9
- package/src/shared/output/meta.js.flow +3 -5
- package/src/shared/output/unbundle.js +14 -1
- package/src/shared/output/unbundle.js.flow +1 -3
- package/src/shared/output/writeFile.js +11 -4
- package/src/shared/output/writeFile.js.flow +3 -5
- package/src/shared/types.d.ts +0 -1
- package/src/shared/{types.flow.js.flow → types.js.flow} +16 -17
- package/src/lib/createModuleIdFactory.js +0 -15
- package/src/lib/createModuleIdFactory.js.flow +0 -27
- package/src/lib/getMaxWorkers.js +0 -9
- package/src/lib/getMaxWorkers.js.flow +0 -22
- package/src/lib/parseOptionsFromUrl.js +0 -62
- package/src/lib/parseOptionsFromUrl.js.flow +0 -97
- package/src/node-haste/Module.js +0 -24
- package/src/node-haste/Module.js.flow +0 -41
- /package/src/shared/{types.flow.js → types.js} +0 -0
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _cliUtils = require("../cli-utils");
|
|
8
|
+
var _Server = _interopRequireDefault(require("../Server"));
|
|
9
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
10
|
+
var _metroConfig = require("metro-config");
|
|
11
|
+
var _path = _interopRequireDefault(require("path"));
|
|
12
|
+
var _util = require("util");
|
|
13
|
+
function _interopRequireDefault(e) {
|
|
14
|
+
return e && e.__esModule ? e : { default: e };
|
|
15
|
+
}
|
|
9
16
|
async function dependencies(args, config) {
|
|
10
17
|
const rootModuleAbsolutePath = args.entryFile;
|
|
11
|
-
if (!
|
|
18
|
+
if (!_fs.default.existsSync(rootModuleAbsolutePath)) {
|
|
12
19
|
return Promise.reject(
|
|
13
|
-
new Error(`File ${rootModuleAbsolutePath} does not exist`)
|
|
20
|
+
new Error(`File ${rootModuleAbsolutePath} does not exist`),
|
|
14
21
|
);
|
|
15
22
|
}
|
|
16
23
|
config.cacheStores = [];
|
|
17
|
-
const relativePath =
|
|
24
|
+
const relativePath = _path.default.relative(
|
|
18
25
|
config.server.unstable_serverRoot ?? config.projectRoot,
|
|
19
|
-
rootModuleAbsolutePath
|
|
26
|
+
rootModuleAbsolutePath,
|
|
20
27
|
);
|
|
21
28
|
const options = {
|
|
22
29
|
platform: args.platform,
|
|
@@ -26,8 +33,10 @@ async function dependencies(args, config) {
|
|
|
26
33
|
generateSourceMaps: !args.dev,
|
|
27
34
|
};
|
|
28
35
|
const outStream =
|
|
29
|
-
args.output != null
|
|
30
|
-
|
|
36
|
+
args.output != null
|
|
37
|
+
? _fs.default.createWriteStream(args.output)
|
|
38
|
+
: process.stdout;
|
|
39
|
+
const server = new _Server.default(config);
|
|
31
40
|
try {
|
|
32
41
|
const deps = await server.getOrderedDependencyPaths(options);
|
|
33
42
|
deps.forEach((modulePath) => {
|
|
@@ -42,10 +51,10 @@ async function dependencies(args, config) {
|
|
|
42
51
|
await server.end();
|
|
43
52
|
}
|
|
44
53
|
return args.output != null
|
|
45
|
-
? promisify(outStream.end).bind(outStream)()
|
|
54
|
+
? (0, _util.promisify)(outStream.end).bind(outStream)()
|
|
46
55
|
: Promise.resolve();
|
|
47
56
|
}
|
|
48
|
-
|
|
57
|
+
var _default = () => ({
|
|
49
58
|
command: "get-dependencies [entryFile]",
|
|
50
59
|
desc: "List all dependencies that will be bundled for a given entry point",
|
|
51
60
|
builder: (yargs) => {
|
|
@@ -85,8 +94,9 @@ module.exports = () => ({
|
|
|
85
94
|
description: "Enables logging",
|
|
86
95
|
});
|
|
87
96
|
},
|
|
88
|
-
handler: makeAsyncCommand(async (argv) => {
|
|
89
|
-
const config = await loadConfig(argv);
|
|
97
|
+
handler: (0, _cliUtils.makeAsyncCommand)(async (argv) => {
|
|
98
|
+
const config = await (0, _metroConfig.loadConfig)(argv);
|
|
90
99
|
await dependencies(argv, config);
|
|
91
100
|
}),
|
|
92
101
|
});
|
|
102
|
+
exports.default = _default;
|
|
@@ -9,18 +9,16 @@
|
|
|
9
9
|
* @oncall react_native
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
'use strict';
|
|
13
|
-
|
|
14
12
|
import type {ConfigT} from 'metro-config';
|
|
15
13
|
import type {ModuleObject} from 'yargs';
|
|
16
14
|
import typeof Yargs from 'yargs';
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
import {makeAsyncCommand} from '../cli-utils';
|
|
17
|
+
import Server from '../Server';
|
|
18
|
+
import fs from 'fs';
|
|
19
|
+
import {loadConfig} from 'metro-config';
|
|
20
|
+
import path from 'path';
|
|
21
|
+
import {promisify} from 'util';
|
|
24
22
|
|
|
25
23
|
type Args = $ReadOnly<{
|
|
26
24
|
entryFile: string,
|
|
@@ -84,7 +82,7 @@ async function dependencies(args: Args, config: ConfigT) {
|
|
|
84
82
|
: Promise.resolve();
|
|
85
83
|
}
|
|
86
84
|
|
|
87
|
-
|
|
85
|
+
export default (): {...ModuleObject, handler: Function} => ({
|
|
88
86
|
command: 'get-dependencies [entryFile]',
|
|
89
87
|
desc: 'List all dependencies that will be bundled for a given entry point',
|
|
90
88
|
builder: (yargs: Yargs) => {
|
package/src/commands/serve.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _cliUtils = require("../cli-utils");
|
|
8
|
+
var _metroConfig = require("metro-config");
|
|
9
|
+
var _util = require("util");
|
|
10
|
+
var _default = () => ({
|
|
7
11
|
command: "serve",
|
|
8
12
|
aliases: ["start"],
|
|
9
13
|
desc: "Starts Metro on the given port, building bundles on the fly",
|
|
@@ -57,10 +61,10 @@ module.exports = () => ({
|
|
|
57
61
|
});
|
|
58
62
|
yargs.example(
|
|
59
63
|
"secure-server-options",
|
|
60
|
-
'-s.cert="$(cat path/to/cert)" -s.key="$(cat path/to/key")'
|
|
64
|
+
'-s.cert="$(cat path/to/cert)" -s.key="$(cat path/to/key")',
|
|
61
65
|
);
|
|
62
66
|
},
|
|
63
|
-
handler: makeAsyncCommand(async (argv) => {
|
|
67
|
+
handler: (0, _cliUtils.makeAsyncCommand)(async (argv) => {
|
|
64
68
|
let server = null;
|
|
65
69
|
let restarting = false;
|
|
66
70
|
async function restart() {
|
|
@@ -71,9 +75,9 @@ module.exports = () => ({
|
|
|
71
75
|
}
|
|
72
76
|
if (server) {
|
|
73
77
|
console.log("Configuration changed. Restarting the server...");
|
|
74
|
-
await promisify(server.close).call(server);
|
|
78
|
+
await (0, _util.promisify)(server.close).call(server);
|
|
75
79
|
}
|
|
76
|
-
const config = await loadConfig(argv);
|
|
80
|
+
const config = await (0, _metroConfig.loadConfig)(argv);
|
|
77
81
|
const MetroApi = require("../index");
|
|
78
82
|
const {
|
|
79
83
|
config: _config,
|
|
@@ -86,15 +90,16 @@ module.exports = () => ({
|
|
|
86
90
|
} = argv;
|
|
87
91
|
({ httpServer: server } = await MetroApi.runServer(
|
|
88
92
|
config,
|
|
89
|
-
runServerOptions
|
|
93
|
+
runServerOptions,
|
|
90
94
|
));
|
|
91
95
|
restarting = false;
|
|
92
96
|
}
|
|
93
|
-
const foundConfig = await resolveConfig(argv.config);
|
|
97
|
+
const foundConfig = await (0, _metroConfig.resolveConfig)(argv.config);
|
|
94
98
|
if (foundConfig) {
|
|
95
|
-
await watchFile(foundConfig.filepath, restart);
|
|
99
|
+
await (0, _cliUtils.watchFile)(foundConfig.filepath, restart);
|
|
96
100
|
} else {
|
|
97
101
|
await restart();
|
|
98
102
|
}
|
|
99
103
|
}),
|
|
100
104
|
});
|
|
105
|
+
exports.default = _default;
|
|
@@ -9,14 +9,12 @@
|
|
|
9
9
|
* @oncall react_native
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
'use strict';
|
|
13
|
-
|
|
14
12
|
import type {ModuleObject} from 'yargs';
|
|
15
13
|
import typeof Yargs from 'yargs';
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
import {makeAsyncCommand, watchFile} from '../cli-utils';
|
|
16
|
+
import {loadConfig, resolveConfig} from 'metro-config';
|
|
17
|
+
import {promisify} from 'util';
|
|
20
18
|
|
|
21
19
|
type Args = $ReadOnly<{
|
|
22
20
|
projectRoots?: $ReadOnlyArray<string>,
|
|
@@ -32,7 +30,7 @@ type Args = $ReadOnly<{
|
|
|
32
30
|
resetCache?: boolean,
|
|
33
31
|
}>;
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
export default (): {
|
|
36
34
|
...ModuleObject,
|
|
37
35
|
handler: Function,
|
|
38
36
|
} => ({
|
|
@@ -96,6 +94,7 @@ module.exports = (): {
|
|
|
96
94
|
const config = await loadConfig(argv);
|
|
97
95
|
|
|
98
96
|
// Inline require() to avoid circular dependency with ../index
|
|
97
|
+
// eslint-disable-next-line import/no-commonjs
|
|
99
98
|
const MetroApi = require('../index');
|
|
100
99
|
|
|
101
100
|
const {
|
package/src/index.d.ts
CHANGED
|
@@ -32,11 +32,12 @@ import type {
|
|
|
32
32
|
import type {Duplex} from 'stream';
|
|
33
33
|
import type Yargs from 'yargs';
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
import {TerminalReporter} from './lib/TerminalReporter';
|
|
36
|
+
import {loadConfig, mergeConfig, resolveConfig} from 'metro-config';
|
|
37
|
+
import {Terminal} from 'metro-core';
|
|
38
38
|
|
|
39
39
|
export {HttpServer, HttpsServer};
|
|
40
|
+
export {loadConfig, mergeConfig, resolveConfig, Terminal, TerminalReporter};
|
|
40
41
|
|
|
41
42
|
interface MetroMiddleWare {
|
|
42
43
|
attachHmrServer: (httpServer: HttpServer | HttpsServer) => void;
|
|
@@ -168,3 +169,25 @@ export function attachMetroCli(
|
|
|
168
169
|
yargs: Yargs.Argv,
|
|
169
170
|
options?: AttachMetroCLIOptions,
|
|
170
171
|
): Yargs.Argv;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Backwards-compatibility with CommonJS consumers using interopRequireDefault.
|
|
175
|
+
* Do not add to this list.
|
|
176
|
+
*
|
|
177
|
+
* @deprecated Default import from 'metro' is deprecated, use named exports.
|
|
178
|
+
*/
|
|
179
|
+
declare const $$EXPORT_DEFAULT_DECLARATION$$: {
|
|
180
|
+
attachMetroCli: typeof attachMetroCli;
|
|
181
|
+
runServer: typeof runServer;
|
|
182
|
+
Terminal: typeof Terminal;
|
|
183
|
+
TerminalReporter: typeof TerminalReporter;
|
|
184
|
+
loadConfig: typeof loadConfig;
|
|
185
|
+
mergeConfig: typeof mergeConfig;
|
|
186
|
+
resolveConfig: typeof resolveConfig;
|
|
187
|
+
createConnectMiddleware: typeof createConnectMiddleware;
|
|
188
|
+
runBuild: typeof runBuild;
|
|
189
|
+
buildGraph: typeof buildGraph;
|
|
190
|
+
};
|
|
191
|
+
declare type $$EXPORT_DEFAULT_DECLARATION$$ =
|
|
192
|
+
typeof $$EXPORT_DEFAULT_DECLARATION$$;
|
|
193
|
+
export default $$EXPORT_DEFAULT_DECLARATION$$;
|
package/src/index.flow.js
CHANGED
|
@@ -1,35 +1,108 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
exports.
|
|
28
|
-
|
|
29
|
-
exports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "JsonReporter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _JsonReporter.default;
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Terminal", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _metroCore.Terminal;
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "TerminalReporter", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _TerminalReporter.default;
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
exports.default =
|
|
25
|
+
exports.createConnectMiddleware =
|
|
26
|
+
exports.buildGraph =
|
|
27
|
+
exports.attachMetroCli =
|
|
28
|
+
void 0;
|
|
29
|
+
Object.defineProperty(exports, "loadConfig", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () {
|
|
32
|
+
return _metroConfig.loadConfig;
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "mergeConfig", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () {
|
|
38
|
+
return _metroConfig.mergeConfig;
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports, "resolveConfig", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () {
|
|
44
|
+
return _metroConfig.resolveConfig;
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
exports.runBuild = void 0;
|
|
48
|
+
exports.runMetro = runMetro;
|
|
49
|
+
exports.runServer = void 0;
|
|
50
|
+
var _build = _interopRequireDefault(require("./commands/build"));
|
|
51
|
+
var _dependencies = _interopRequireDefault(require("./commands/dependencies"));
|
|
52
|
+
var _serve = _interopRequireDefault(require("./commands/serve"));
|
|
53
|
+
var _HmrServer = _interopRequireDefault(require("./HmrServer"));
|
|
54
|
+
var _IncrementalBundler = _interopRequireDefault(
|
|
55
|
+
require("./IncrementalBundler"),
|
|
56
|
+
);
|
|
57
|
+
var _createWebsocketServer = _interopRequireDefault(
|
|
58
|
+
require("./lib/createWebsocketServer"),
|
|
59
|
+
);
|
|
60
|
+
var _JsonReporter = _interopRequireDefault(require("./lib/JsonReporter"));
|
|
61
|
+
var _TerminalReporter = _interopRequireDefault(
|
|
62
|
+
require("./lib/TerminalReporter"),
|
|
63
|
+
);
|
|
64
|
+
var _Server = _interopRequireDefault(require("./Server"));
|
|
65
|
+
var outputBundle = _interopRequireWildcard(require("./shared/output/bundle"));
|
|
66
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
67
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
68
|
+
var _http = _interopRequireDefault(require("http"));
|
|
69
|
+
var _https = _interopRequireDefault(require("https"));
|
|
70
|
+
var _metroConfig = require("metro-config");
|
|
71
|
+
var _metroCore = require("metro-core");
|
|
72
|
+
var _net = _interopRequireDefault(require("net"));
|
|
73
|
+
var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
|
74
|
+
function _getRequireWildcardCache(e) {
|
|
75
|
+
if ("function" != typeof WeakMap) return null;
|
|
76
|
+
var r = new WeakMap(),
|
|
77
|
+
t = new WeakMap();
|
|
78
|
+
return (_getRequireWildcardCache = function (e) {
|
|
79
|
+
return e ? t : r;
|
|
80
|
+
})(e);
|
|
81
|
+
}
|
|
82
|
+
function _interopRequireWildcard(e, r) {
|
|
83
|
+
if (!r && e && e.__esModule) return e;
|
|
84
|
+
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
85
|
+
return { default: e };
|
|
86
|
+
var t = _getRequireWildcardCache(r);
|
|
87
|
+
if (t && t.has(e)) return t.get(e);
|
|
88
|
+
var n = { __proto__: null },
|
|
89
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
90
|
+
for (var u in e)
|
|
91
|
+
if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
92
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
|
93
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : (n[u] = e[u]);
|
|
94
|
+
}
|
|
95
|
+
return ((n.default = e), t && t.set(e, n), n);
|
|
96
|
+
}
|
|
97
|
+
function _interopRequireDefault(e) {
|
|
98
|
+
return e && e.__esModule ? e : { default: e };
|
|
99
|
+
}
|
|
100
|
+
const DEFAULTS = _Server.default.DEFAULT_BUNDLE_OPTIONS;
|
|
30
101
|
async function getConfig(config) {
|
|
31
|
-
const defaultConfig = await
|
|
32
|
-
|
|
102
|
+
const defaultConfig = await (0, _metroConfig.getDefaultConfig)(
|
|
103
|
+
config.projectRoot,
|
|
104
|
+
);
|
|
105
|
+
return (0, _metroConfig.mergeConfig)(defaultConfig, config);
|
|
33
106
|
}
|
|
34
107
|
async function runMetro(config, options) {
|
|
35
108
|
const mergedConfig = await getConfig(config);
|
|
@@ -45,7 +118,7 @@ async function runMetro(config, options) {
|
|
|
45
118
|
type: "initialize_started",
|
|
46
119
|
});
|
|
47
120
|
const { waitForBundler = false, ...serverOptions } = options ?? {};
|
|
48
|
-
const server = new
|
|
121
|
+
const server = new _Server.default(mergedConfig, serverOptions);
|
|
49
122
|
const readyPromise = server
|
|
50
123
|
.ready()
|
|
51
124
|
.then(() => {
|
|
@@ -66,30 +139,26 @@ async function runMetro(config, options) {
|
|
|
66
139
|
}
|
|
67
140
|
return server;
|
|
68
141
|
}
|
|
69
|
-
exports.runMetro = runMetro;
|
|
70
|
-
exports.loadConfig = loadConfig;
|
|
71
|
-
exports.mergeConfig = mergeConfig;
|
|
72
|
-
exports.resolveConfig = resolveConfig;
|
|
73
142
|
const createConnectMiddleware = async function (config, options) {
|
|
74
143
|
const metroServer = await runMetro(config, options);
|
|
75
144
|
let enhancedMiddleware = metroServer.processRequest;
|
|
76
145
|
if (config.server.enhanceMiddleware) {
|
|
77
146
|
enhancedMiddleware = config.server.enhanceMiddleware(
|
|
78
147
|
enhancedMiddleware,
|
|
79
|
-
metroServer
|
|
148
|
+
metroServer,
|
|
80
149
|
);
|
|
81
150
|
}
|
|
82
151
|
return {
|
|
83
152
|
attachHmrServer(httpServer) {
|
|
84
|
-
const wss =
|
|
85
|
-
websocketServer: new
|
|
153
|
+
const wss = (0, _createWebsocketServer.default)({
|
|
154
|
+
websocketServer: new _HmrServer.default(
|
|
86
155
|
metroServer.getBundler(),
|
|
87
156
|
metroServer.getCreateModuleId(),
|
|
88
|
-
config
|
|
157
|
+
config,
|
|
89
158
|
),
|
|
90
159
|
});
|
|
91
160
|
httpServer.on("upgrade", (request, socket, head) => {
|
|
92
|
-
const { pathname } =
|
|
161
|
+
const { pathname } = new URL(request.url, "resolve://");
|
|
93
162
|
if (pathname === "/hot") {
|
|
94
163
|
wss.handleUpgrade(request, socket, head, (ws) => {
|
|
95
164
|
wss.emit("connection", ws, request);
|
|
@@ -107,7 +176,7 @@ const createConnectMiddleware = async function (config, options) {
|
|
|
107
176
|
};
|
|
108
177
|
};
|
|
109
178
|
exports.createConnectMiddleware = createConnectMiddleware;
|
|
110
|
-
|
|
179
|
+
const runServer = async (
|
|
111
180
|
config,
|
|
112
181
|
{
|
|
113
182
|
hasReducedPerformance = false,
|
|
@@ -123,15 +192,15 @@ exports.runServer = async (
|
|
|
123
192
|
waitForBundler = false,
|
|
124
193
|
websocketEndpoints = {},
|
|
125
194
|
watch,
|
|
126
|
-
} = {}
|
|
195
|
+
} = {},
|
|
127
196
|
) => {
|
|
128
197
|
await earlyPortCheck(host, config.server.port);
|
|
129
198
|
if (secure != null || secureCert != null || secureKey != null) {
|
|
130
199
|
console.warn(
|
|
131
|
-
|
|
200
|
+
_chalk.default.inverse.yellow.bold(" DEPRECATED "),
|
|
132
201
|
"The `secure`, `secureCert`, and `secureKey` options are now deprecated. " +
|
|
133
202
|
"Please use the `secureServerOptions` object instead to pass options to " +
|
|
134
|
-
"Metro's https development server."
|
|
203
|
+
"Metro's https development server.",
|
|
135
204
|
);
|
|
136
205
|
}
|
|
137
206
|
const connect = require("connect");
|
|
@@ -154,14 +223,14 @@ exports.runServer = async (
|
|
|
154
223
|
let options = secureServerOptions;
|
|
155
224
|
if (typeof secureKey === "string" && typeof secureCert === "string") {
|
|
156
225
|
options = {
|
|
157
|
-
key:
|
|
158
|
-
cert:
|
|
226
|
+
key: _fs.default.readFileSync(secureKey),
|
|
227
|
+
cert: _fs.default.readFileSync(secureCert),
|
|
159
228
|
...secureServerOptions,
|
|
160
229
|
};
|
|
161
230
|
}
|
|
162
|
-
httpServer =
|
|
231
|
+
httpServer = _https.default.createServer(options, serverApp);
|
|
163
232
|
} else {
|
|
164
|
-
httpServer =
|
|
233
|
+
httpServer = _http.default.createServer(serverApp);
|
|
165
234
|
}
|
|
166
235
|
return new Promise((resolve, reject) => {
|
|
167
236
|
httpServer.on("error", (error) => {
|
|
@@ -180,16 +249,16 @@ exports.runServer = async (
|
|
|
180
249
|
});
|
|
181
250
|
websocketEndpoints = {
|
|
182
251
|
...websocketEndpoints,
|
|
183
|
-
"/hot":
|
|
184
|
-
websocketServer: new
|
|
252
|
+
"/hot": (0, _createWebsocketServer.default)({
|
|
253
|
+
websocketServer: new _HmrServer.default(
|
|
185
254
|
metroServer.getBundler(),
|
|
186
255
|
metroServer.getCreateModuleId(),
|
|
187
|
-
config
|
|
256
|
+
config,
|
|
188
257
|
),
|
|
189
258
|
}),
|
|
190
259
|
};
|
|
191
260
|
httpServer.on("upgrade", (request, socket, head) => {
|
|
192
|
-
const { pathname } =
|
|
261
|
+
const { pathname } = new URL(request.url, "resolve://");
|
|
193
262
|
if (pathname != null && websocketEndpoints[pathname]) {
|
|
194
263
|
websocketEndpoints[pathname].handleUpgrade(
|
|
195
264
|
request,
|
|
@@ -197,7 +266,7 @@ exports.runServer = async (
|
|
|
197
266
|
head,
|
|
198
267
|
(ws) => {
|
|
199
268
|
websocketEndpoints[pathname].emit("connection", ws, request);
|
|
200
|
-
}
|
|
269
|
+
},
|
|
201
270
|
);
|
|
202
271
|
} else {
|
|
203
272
|
socket.destroy();
|
|
@@ -218,12 +287,13 @@ exports.runServer = async (
|
|
|
218
287
|
});
|
|
219
288
|
});
|
|
220
289
|
};
|
|
221
|
-
exports.
|
|
290
|
+
exports.runServer = runServer;
|
|
291
|
+
const runBuild = async (
|
|
222
292
|
config,
|
|
223
293
|
{
|
|
224
294
|
assets = false,
|
|
225
|
-
customResolverOptions,
|
|
226
|
-
customTransformOptions,
|
|
295
|
+
customResolverOptions = DEFAULTS.customResolverOptions,
|
|
296
|
+
customTransformOptions = DEFAULTS.customTransformOptions,
|
|
227
297
|
dev = false,
|
|
228
298
|
entry,
|
|
229
299
|
onBegin,
|
|
@@ -237,8 +307,8 @@ exports.runBuild = async (
|
|
|
237
307
|
platform = "web",
|
|
238
308
|
sourceMap = false,
|
|
239
309
|
sourceMapUrl,
|
|
240
|
-
unstable_transformProfile,
|
|
241
|
-
}
|
|
310
|
+
unstable_transformProfile = DEFAULTS.unstable_transformProfile,
|
|
311
|
+
},
|
|
242
312
|
) => {
|
|
243
313
|
const metroServer = await runMetro(config, {
|
|
244
314
|
watch: false,
|
|
@@ -250,7 +320,11 @@ exports.runBuild = async (
|
|
|
250
320
|
inlineSourceMap: sourceMap && !sourceMapUrl,
|
|
251
321
|
minify,
|
|
252
322
|
platform,
|
|
253
|
-
|
|
323
|
+
...(sourceMap === false
|
|
324
|
+
? {}
|
|
325
|
+
: {
|
|
326
|
+
sourceMapUrl,
|
|
327
|
+
}),
|
|
254
328
|
createModuleIdFactory: config.serializer.createModuleIdFactory,
|
|
255
329
|
onProgress,
|
|
256
330
|
customResolverOptions,
|
|
@@ -268,7 +342,7 @@ exports.runBuild = async (
|
|
|
268
342
|
};
|
|
269
343
|
if (assets && result.assets == null) {
|
|
270
344
|
result.assets = await metroServer.getAssets({
|
|
271
|
-
...
|
|
345
|
+
..._Server.default.DEFAULT_BUNDLE_OPTIONS,
|
|
272
346
|
...requestOptions,
|
|
273
347
|
});
|
|
274
348
|
}
|
|
@@ -277,11 +351,11 @@ exports.runBuild = async (
|
|
|
277
351
|
}
|
|
278
352
|
if (out || bundleOut) {
|
|
279
353
|
const bundleOutput =
|
|
280
|
-
bundleOut ??
|
|
354
|
+
bundleOut ?? (0, _nullthrows.default)(out).replace(/(\.js)?$/, ".js");
|
|
281
355
|
const sourcemapOutput =
|
|
282
356
|
sourceMap === false
|
|
283
357
|
? undefined
|
|
284
|
-
: sourceMapOut ?? out?.replace(/(\.js)?$/, ".map");
|
|
358
|
+
: (sourceMapOut ?? out?.replace(/(\.js)?$/, ".map"));
|
|
285
359
|
const outputOptions = {
|
|
286
360
|
bundleOutput,
|
|
287
361
|
sourcemapOutput,
|
|
@@ -292,7 +366,7 @@ exports.runBuild = async (
|
|
|
292
366
|
config.reporter.update({
|
|
293
367
|
type: "bundle_save_log",
|
|
294
368
|
message,
|
|
295
|
-
})
|
|
369
|
+
}),
|
|
296
370
|
);
|
|
297
371
|
}
|
|
298
372
|
return result;
|
|
@@ -300,7 +374,8 @@ exports.runBuild = async (
|
|
|
300
374
|
await metroServer.end();
|
|
301
375
|
}
|
|
302
376
|
};
|
|
303
|
-
exports.
|
|
377
|
+
exports.runBuild = runBuild;
|
|
378
|
+
const buildGraph = async function (
|
|
304
379
|
config,
|
|
305
380
|
{
|
|
306
381
|
customTransformOptions = Object.create(null),
|
|
@@ -310,13 +385,13 @@ exports.buildGraph = async function (
|
|
|
310
385
|
onProgress,
|
|
311
386
|
platform = "web",
|
|
312
387
|
type = "module",
|
|
313
|
-
}
|
|
388
|
+
},
|
|
314
389
|
) {
|
|
315
390
|
const mergedConfig = await getConfig(config);
|
|
316
|
-
const bundler = new
|
|
391
|
+
const bundler = new _IncrementalBundler.default(mergedConfig);
|
|
317
392
|
try {
|
|
318
393
|
const { customResolverOptions, ...defaultTransformInputOptions } =
|
|
319
|
-
|
|
394
|
+
_Server.default.DEFAULT_GRAPH_OPTIONS;
|
|
320
395
|
return await bundler.buildGraphForEntries(
|
|
321
396
|
entries,
|
|
322
397
|
{
|
|
@@ -330,28 +405,30 @@ exports.buildGraph = async function (
|
|
|
330
405
|
{
|
|
331
406
|
customResolverOptions,
|
|
332
407
|
dev,
|
|
333
|
-
}
|
|
408
|
+
},
|
|
334
409
|
);
|
|
335
410
|
} finally {
|
|
336
411
|
await bundler.end();
|
|
337
412
|
}
|
|
338
413
|
};
|
|
339
|
-
exports.
|
|
414
|
+
exports.buildGraph = buildGraph;
|
|
415
|
+
const attachMetroCli = function (yargs, options = {}) {
|
|
340
416
|
const { build = {}, serve = {}, dependencies = {} } = options;
|
|
341
417
|
yargs.strict();
|
|
342
418
|
if (build) {
|
|
343
|
-
yargs.command(
|
|
419
|
+
yargs.command((0, _build.default)());
|
|
344
420
|
}
|
|
345
421
|
if (serve) {
|
|
346
|
-
yargs.command(
|
|
422
|
+
yargs.command((0, _serve.default)());
|
|
347
423
|
}
|
|
348
424
|
if (dependencies) {
|
|
349
|
-
yargs.command(
|
|
425
|
+
yargs.command((0, _dependencies.default)());
|
|
350
426
|
}
|
|
351
427
|
return yargs;
|
|
352
428
|
};
|
|
429
|
+
exports.attachMetroCli = attachMetroCli;
|
|
353
430
|
async function earlyPortCheck(host, port) {
|
|
354
|
-
const server =
|
|
431
|
+
const server = _net.default.createServer((c) => c.end());
|
|
355
432
|
try {
|
|
356
433
|
await new Promise((resolve, reject) => {
|
|
357
434
|
server.on("error", (err) => {
|
|
@@ -363,3 +440,16 @@ async function earlyPortCheck(host, port) {
|
|
|
363
440
|
await new Promise((resolve) => server.close(() => resolve()));
|
|
364
441
|
}
|
|
365
442
|
}
|
|
443
|
+
var _default = (exports.default = {
|
|
444
|
+
attachMetroCli,
|
|
445
|
+
runServer,
|
|
446
|
+
Terminal: _metroCore.Terminal,
|
|
447
|
+
JsonReporter: _JsonReporter.default,
|
|
448
|
+
TerminalReporter: _TerminalReporter.default,
|
|
449
|
+
loadConfig: _metroConfig.loadConfig,
|
|
450
|
+
mergeConfig: _metroConfig.mergeConfig,
|
|
451
|
+
resolveConfig: _metroConfig.resolveConfig,
|
|
452
|
+
createConnectMiddleware,
|
|
453
|
+
runBuild,
|
|
454
|
+
buildGraph,
|
|
455
|
+
});
|