metro 0.83.3 → 0.83.5
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 -24
- package/src/Assets.d.ts +83 -0
- package/src/Assets.js +42 -29
- package/src/Assets.js.flow +26 -15
- package/src/Bundler/util.d.ts +27 -0
- package/src/Bundler/util.js +25 -21
- package/src/Bundler/util.js.flow +2 -2
- package/src/Bundler.d.ts +14 -15
- package/src/Bundler.js.flow +1 -1
- package/src/DeltaBundler/DeltaCalculator.d.ts +71 -0
- package/src/DeltaBundler/DeltaCalculator.js +4 -4
- package/src/DeltaBundler/DeltaCalculator.js.flow +8 -8
- package/src/DeltaBundler/Graph.d.ts +135 -8
- package/src/DeltaBundler/Graph.js +16 -16
- package/src/DeltaBundler/Graph.js.flow +30 -30
- package/src/DeltaBundler/Serializers/baseJSBundle.d.ts +20 -0
- package/src/DeltaBundler/Serializers/baseJSBundle.js.flow +1 -1
- package/src/DeltaBundler/Serializers/getAllFiles.d.ts +22 -0
- package/src/DeltaBundler/Serializers/getAllFiles.js.flow +2 -2
- package/src/DeltaBundler/Serializers/getAssets.d.ts +25 -0
- package/src/DeltaBundler/Serializers/getAssets.js.flow +2 -2
- package/src/DeltaBundler/Serializers/getExplodedSourceMap.js.flow +2 -2
- package/src/DeltaBundler/Serializers/getRamBundleInfo.d.ts +36 -6
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +8 -8
- package/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.d.ts +12 -0
- package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.d.ts +33 -0
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.d.ts +17 -0
- package/src/DeltaBundler/Serializers/helpers/js.d.ts +30 -0
- 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.d.ts +25 -0
- package/src/DeltaBundler/Serializers/helpers/processModules.js.flow +3 -3
- package/src/DeltaBundler/Serializers/hmrJSBundle.d.ts +30 -0
- package/src/DeltaBundler/Serializers/hmrJSBundle.js +25 -21
- package/src/DeltaBundler/Serializers/hmrJSBundle.js.flow +5 -5
- package/src/DeltaBundler/Serializers/sourceMapGenerator.d.ts +29 -0
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js.flow +6 -6
- package/src/DeltaBundler/Serializers/sourceMapObject.d.ts +23 -0
- package/src/DeltaBundler/Serializers/sourceMapObject.js.flow +2 -2
- package/src/DeltaBundler/Serializers/sourceMapString.d.ts +22 -0
- package/src/DeltaBundler/Serializers/sourceMapString.js.flow +2 -2
- package/src/DeltaBundler/Transformer.d.ts +38 -0
- package/src/DeltaBundler/Transformer.js.flow +3 -3
- package/src/DeltaBundler/Worker.d.ts +19 -27
- package/src/DeltaBundler/Worker.flow.js.flow +1 -1
- package/src/DeltaBundler/WorkerFarm.d.ts +70 -0
- package/src/DeltaBundler/WorkerFarm.js +1 -1
- package/src/DeltaBundler/WorkerFarm.js.flow +26 -13
- package/src/DeltaBundler/buildSubgraph.d.ts +30 -0
- package/src/DeltaBundler/buildSubgraph.js +4 -4
- package/src/DeltaBundler/buildSubgraph.js.flow +8 -8
- package/src/DeltaBundler/getTransformCacheKey.d.ts +18 -0
- package/src/DeltaBundler/mergeDeltas.d.ts +17 -0
- package/src/DeltaBundler/types.d.ts +97 -100
- package/src/DeltaBundler/types.js.flow +36 -34
- package/src/DeltaBundler.d.ts +14 -12
- package/src/DeltaBundler.js.flow +2 -2
- package/src/HmrServer.d.ts +79 -0
- package/src/HmrServer.js +34 -29
- package/src/HmrServer.js.flow +17 -12
- package/src/IncrementalBundler/GraphNotFoundError.d.ts +17 -0
- package/src/IncrementalBundler/ResourceNotFoundError.d.ts +15 -0
- package/src/IncrementalBundler/RevisionNotFoundError.d.ts +17 -0
- package/src/IncrementalBundler.d.ts +43 -45
- package/src/IncrementalBundler.js +29 -21
- package/src/IncrementalBundler.js.flow +13 -9
- package/src/ModuleGraph/worker/JsFileWrapping.d.ts +29 -0
- package/src/ModuleGraph/worker/JsFileWrapping.js +25 -21
- package/src/ModuleGraph/worker/JsFileWrapping.js.flow +10 -5
- package/src/ModuleGraph/worker/collectDependencies.d.ts +118 -14
- package/src/ModuleGraph/worker/collectDependencies.js +25 -21
- package/src/ModuleGraph/worker/collectDependencies.js.flow +27 -21
- package/src/ModuleGraph/worker/generateImportNames.d.ts +19 -0
- package/src/ModuleGraph/worker/generateImportNames.js.flow +4 -2
- package/src/ModuleGraph/worker/importLocationsPlugin.d.ts +26 -0
- package/src/ModuleGraph/worker/importLocationsPlugin.js.flow +7 -3
- package/src/Server/MultipartResponse.d.ts +5 -6
- package/src/Server/MultipartResponse.js.flow +1 -1
- package/src/Server/symbolicate.js.flow +4 -4
- package/src/Server.d.ts +220 -67
- package/src/Server.js +149 -45
- package/src/Server.js.flow +167 -57
- package/src/cli/parseKeyValueParamArray.d.ts +14 -0
- package/src/cli/parseKeyValueParamArray.js.flow +1 -1
- package/src/cli-utils.d.ts +19 -0
- package/src/cli-utils.js.flow +2 -2
- package/src/commands/build.d.ts +16 -0
- package/src/commands/build.js.flow +11 -10
- package/src/commands/dependencies.d.ts +16 -0
- package/src/commands/dependencies.js.flow +8 -4
- package/src/commands/serve.d.ts +16 -0
- package/src/commands/serve.js +2 -0
- package/src/commands/serve.js.flow +14 -9
- package/src/index.d.ts +97 -110
- package/src/index.flow.js +53 -35
- package/src/index.flow.js.flow +49 -29
- 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.d.ts +54 -0
- package/src/lib/BatchProcessor.js +5 -2
- package/src/lib/BatchProcessor.js.flow +10 -7
- package/src/lib/CountingSet.d.ts +10 -10
- package/src/lib/CountingSet.js.flow +4 -4
- package/src/lib/JsonReporter.d.ts +37 -0
- package/src/lib/JsonReporter.js +5 -3
- package/src/lib/JsonReporter.js.flow +19 -17
- package/src/lib/RamBundleParser.d.ts +29 -0
- package/src/lib/RamBundleParser.js.flow +1 -1
- package/src/lib/TerminalReporter.d.ts +97 -6
- package/src/lib/TerminalReporter.js +37 -34
- package/src/lib/TerminalReporter.js.flow +21 -30
- package/src/lib/bundleProgressUtils.d.ts +26 -0
- package/src/lib/bundleProgressUtils.js +19 -0
- package/src/lib/bundleProgressUtils.js.flow +35 -0
- package/src/lib/bundleToString.d.ts +19 -0
- package/src/lib/contextModule.d.ts +20 -9
- package/src/lib/contextModule.js.flow +1 -1
- package/src/lib/contextModuleTemplates.d.ts +25 -0
- package/src/lib/contextModuleTemplates.js +25 -21
- package/src/lib/countLines.d.ts +12 -0
- package/src/lib/countLines.js +4 -3
- package/src/lib/countLines.js.flow +3 -4
- package/src/lib/createWebsocketServer.d.ts +43 -0
- package/src/lib/createWebsocketServer.js +9 -2
- package/src/lib/createWebsocketServer.js.flow +16 -9
- package/src/lib/debounceAsyncQueue.d.ts +15 -0
- package/src/lib/debounceAsyncQueue.js.flow +1 -1
- package/src/lib/formatBundlingError.d.ts +23 -0
- package/src/lib/formatBundlingError.js.flow +1 -1
- package/src/lib/getAppendScripts.d.ts +31 -0
- package/src/lib/getAppendScripts.js.flow +4 -4
- package/src/lib/getGraphId.d.ts +15 -1
- package/src/lib/getGraphId.js.flow +1 -1
- package/src/lib/getPreludeCode.d.ts +18 -0
- package/src/lib/getPreludeCode.js +4 -0
- package/src/lib/getPreludeCode.js.flow +10 -3
- package/src/lib/getPrependedScripts.d.ts +24 -0
- package/src/lib/getPrependedScripts.js +36 -22
- package/src/lib/getPrependedScripts.js.flow +10 -3
- package/src/lib/isResolvedDependency.d.ts +15 -0
- package/src/lib/logToConsole.d.ts +19 -0
- package/src/lib/logToConsole.js.flow +2 -2
- package/src/lib/parseBundleOptionsFromBundleRequestUrl.d.ts +17 -0
- package/src/lib/parseBundleOptionsFromBundleRequestUrl.js +25 -21
- package/src/lib/parseCustomResolverOptions.d.ts +16 -0
- package/src/lib/parseCustomResolverOptions.js.flow +2 -2
- package/src/lib/parseCustomTransformOptions.d.ts +16 -0
- package/src/lib/parseCustomTransformOptions.js.flow +1 -1
- package/src/lib/parseJsonBody.d.ts +27 -0
- package/src/lib/parseJsonBody.js.flow +11 -1
- package/src/lib/pathUtils.d.ts +14 -0
- package/src/lib/pathUtils.js +25 -21
- package/src/lib/pathUtils.js.flow +1 -1
- package/src/lib/relativizeSourceMap.d.ts +17 -0
- package/src/lib/reporting.d.ts +65 -81
- package/src/lib/reporting.js.flow +4 -4
- package/src/lib/splitBundleOptions.d.ts +16 -0
- package/src/lib/transformHelpers.d.ts +35 -0
- package/src/lib/transformHelpers.js +11 -9
- package/src/lib/transformHelpers.js.flow +17 -15
- package/src/node-haste/DependencyGraph/ModuleResolution.d.ts +126 -0
- 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.d.ts +29 -0
- package/src/node-haste/DependencyGraph/createFileMap.js +56 -38
- package/src/node-haste/DependencyGraph/createFileMap.js.flow +44 -18
- package/src/node-haste/DependencyGraph.d.ts +57 -33
- package/src/node-haste/DependencyGraph.js +40 -31
- package/src/node-haste/DependencyGraph.js.flow +35 -37
- package/src/node-haste/Package.d.ts +21 -0
- package/src/node-haste/PackageCache.d.ts +34 -0
- package/src/node-haste/lib/AssetPaths.d.ts +29 -0
- 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.d.ts +25 -0
- 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.d.ts +25 -0
- package/src/shared/output/RamBundle/as-assets.js.flow +6 -6
- package/src/shared/output/RamBundle/as-indexed-file.d.ts +38 -0
- package/src/shared/output/RamBundle/as-indexed-file.js.flow +5 -5
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.d.ts +23 -0
- package/src/shared/output/RamBundle/buildSourcemapWithMetadata.js.flow +5 -5
- package/src/shared/output/RamBundle/magic-number.d.ts +14 -0
- package/src/shared/output/RamBundle/util.d.ts +41 -0
- package/src/shared/output/RamBundle/util.js.flow +5 -5
- package/src/shared/output/RamBundle/write-sourcemap.d.ts +16 -0
- package/src/shared/output/RamBundle/write-sourcemap.js.flow +1 -1
- package/src/shared/output/RamBundle.d.ts +26 -0
- package/src/shared/output/RamBundle.js.flow +1 -1
- package/src/shared/output/bundle.d.ts +9 -17
- package/src/shared/output/bundle.flow.js.flow +3 -3
- package/src/shared/output/meta.d.ts +15 -0
- package/src/shared/output/meta.js +2 -2
- package/src/shared/output/meta.js.flow +1 -1
- package/src/shared/output/unbundle.d.ts +11 -0
- package/src/shared/output/writeFile.d.ts +16 -0
- package/src/shared/output/writeFile.js +8 -3
- package/src/shared/output/writeFile.js.flow +8 -2
- package/src/shared/types.d.ts +81 -66
- package/src/shared/types.js.flow +20 -5
- package/src/Asset.d.ts +0 -25
- package/src/ModuleGraph/test-helpers.js +0 -75
|
@@ -4,13 +4,13 @@
|
|
|
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.
|
|
6
6
|
*
|
|
7
|
-
* @flow
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
* @oncall react_native
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import type {ConfigT} from 'metro-config';
|
|
13
|
-
import type {
|
|
13
|
+
import type {CommandModule} from 'yargs';
|
|
14
14
|
import typeof Yargs from 'yargs';
|
|
15
15
|
|
|
16
16
|
import {makeAsyncCommand} from '../cli-utils';
|
|
@@ -20,7 +20,9 @@ import {loadConfig} from 'metro-config';
|
|
|
20
20
|
import path from 'path';
|
|
21
21
|
import {promisify} from 'util';
|
|
22
22
|
|
|
23
|
-
type Args =
|
|
23
|
+
type Args = Readonly<{
|
|
24
|
+
_: unknown,
|
|
25
|
+
$0: unknown,
|
|
24
26
|
entryFile: string,
|
|
25
27
|
output?: string,
|
|
26
28
|
platform?: string,
|
|
@@ -28,6 +30,7 @@ type Args = $ReadOnly<{
|
|
|
28
30
|
maxWorkers?: number,
|
|
29
31
|
dev: boolean,
|
|
30
32
|
verbose: boolean,
|
|
33
|
+
...
|
|
31
34
|
}>;
|
|
32
35
|
|
|
33
36
|
async function dependencies(args: Args, config: ConfigT) {
|
|
@@ -82,7 +85,7 @@ async function dependencies(args: Args, config: ConfigT) {
|
|
|
82
85
|
: Promise.resolve();
|
|
83
86
|
}
|
|
84
87
|
|
|
85
|
-
export default ():
|
|
88
|
+
export default (): CommandModule => ({
|
|
86
89
|
command: 'get-dependencies [entryFile]',
|
|
87
90
|
desc: 'List all dependencies that will be bundled for a given entry point',
|
|
88
91
|
builder: (yargs: Yargs) => {
|
|
@@ -123,6 +126,7 @@ export default (): {...ModuleObject, handler: Function} => ({
|
|
|
123
126
|
});
|
|
124
127
|
},
|
|
125
128
|
handler: makeAsyncCommand(async (argv: Args) => {
|
|
129
|
+
// $FlowFixMe[incompatible-type] argv has extra props.
|
|
126
130
|
const config = await loadConfig(argv);
|
|
127
131
|
await dependencies(argv, config);
|
|
128
132
|
}),
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @oncall react_native
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {CommandModule} from 'yargs';
|
|
12
|
+
|
|
13
|
+
declare const $$EXPORT_DEFAULT_DECLARATION$$: () => CommandModule;
|
|
14
|
+
declare type $$EXPORT_DEFAULT_DECLARATION$$ =
|
|
15
|
+
typeof $$EXPORT_DEFAULT_DECLARATION$$;
|
|
16
|
+
export default $$EXPORT_DEFAULT_DECLARATION$$;
|
package/src/commands/serve.js
CHANGED
|
@@ -4,36 +4,37 @@
|
|
|
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.
|
|
6
6
|
*
|
|
7
|
-
* @flow
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
* @oncall react_native
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type {
|
|
12
|
+
import type {ServerOptions as HttpsServerOptions} from 'https';
|
|
13
|
+
import type {CommandModule} from 'yargs';
|
|
13
14
|
import typeof Yargs from 'yargs';
|
|
14
15
|
|
|
15
16
|
import {makeAsyncCommand, watchFile} from '../cli-utils';
|
|
16
17
|
import {loadConfig, resolveConfig} from 'metro-config';
|
|
17
18
|
import {promisify} from 'util';
|
|
18
19
|
|
|
19
|
-
type Args =
|
|
20
|
-
|
|
20
|
+
type Args = Readonly<{
|
|
21
|
+
_: unknown,
|
|
22
|
+
$0: unknown,
|
|
23
|
+
projectRoots?: ReadonlyArray<string>,
|
|
21
24
|
host: string,
|
|
22
25
|
port: number,
|
|
23
26
|
maxWorkers?: number,
|
|
24
27
|
secure?: boolean,
|
|
25
28
|
secureKey?: string,
|
|
26
29
|
secureCert?: string,
|
|
27
|
-
secureServerOptions?:
|
|
30
|
+
secureServerOptions?: HttpsServerOptions,
|
|
28
31
|
hmrEnabled?: boolean,
|
|
29
32
|
config?: string,
|
|
30
33
|
resetCache?: boolean,
|
|
34
|
+
...
|
|
31
35
|
}>;
|
|
32
36
|
|
|
33
|
-
export default (): {
|
|
34
|
-
...ModuleObject,
|
|
35
|
-
handler: Function,
|
|
36
|
-
} => ({
|
|
37
|
+
export default (): CommandModule => ({
|
|
37
38
|
command: 'serve',
|
|
38
39
|
aliases: ['start'],
|
|
39
40
|
desc: 'Starts Metro on the given port, building bundles on the fly',
|
|
@@ -91,6 +92,7 @@ export default (): {
|
|
|
91
92
|
await promisify(server.close).call(server);
|
|
92
93
|
}
|
|
93
94
|
|
|
95
|
+
// $FlowFixMe[incompatible-type] argv has extra props.
|
|
94
96
|
const config = await loadConfig(argv);
|
|
95
97
|
|
|
96
98
|
// Inline require() to avoid circular dependency with ../index
|
|
@@ -98,6 +100,8 @@ export default (): {
|
|
|
98
100
|
const MetroApi = require('../index');
|
|
99
101
|
|
|
100
102
|
const {
|
|
103
|
+
_,
|
|
104
|
+
$0: _0,
|
|
101
105
|
config: _config,
|
|
102
106
|
hmrEnabled: _hmrEnabled,
|
|
103
107
|
maxWorkers: _maxWorkers,
|
|
@@ -108,6 +112,7 @@ export default (): {
|
|
|
108
112
|
} = argv;
|
|
109
113
|
({httpServer: server} = await MetroApi.runServer(
|
|
110
114
|
config,
|
|
115
|
+
// $FlowFixMe[incompatible-exact] argv has extra props.
|
|
111
116
|
runServerOptions,
|
|
112
117
|
));
|
|
113
118
|
|
package/src/index.d.ts
CHANGED
|
@@ -8,168 +8,154 @@
|
|
|
8
8
|
* @oncall react_native
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export * from './Server';
|
|
15
|
-
export * from './lib/reporting';
|
|
16
|
-
|
|
17
|
-
import type {AssetData} from './Asset';
|
|
18
|
-
import type {ReadOnlyGraph} from './DeltaBundler/types';
|
|
19
|
-
import type {ServerOptions, default as MetroServer} from './Server';
|
|
11
|
+
import type {AssetData} from './Assets';
|
|
12
|
+
import type {ReadOnlyGraph} from './DeltaBundler';
|
|
13
|
+
import type {ServerOptions} from './Server';
|
|
20
14
|
import type {BuildOptions, OutputOptions, RequestOptions} from './shared/types';
|
|
21
15
|
import type {HandleFunction} from 'connect';
|
|
22
|
-
import type {
|
|
23
|
-
import type {
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
import type {Server as HttpServer} from 'http';
|
|
17
|
+
import type {
|
|
18
|
+
Server as HttpsServer,
|
|
19
|
+
ServerOptions as HttpsServerOptions,
|
|
20
|
+
} from 'https';
|
|
21
|
+
import type {TransformProfile} from 'metro-babel-transformer';
|
|
26
22
|
import type {
|
|
27
23
|
ConfigT,
|
|
28
24
|
InputConfigT,
|
|
29
25
|
MetroConfig,
|
|
30
26
|
Middleware,
|
|
31
27
|
} from 'metro-config';
|
|
32
|
-
import type {
|
|
33
|
-
import type
|
|
34
|
-
|
|
35
|
-
import
|
|
28
|
+
import type {CustomResolverOptions} from 'metro-resolver';
|
|
29
|
+
import type {CustomTransformOptions} from 'metro-transform-worker';
|
|
30
|
+
import type {Server as WebSocketServer} from 'ws';
|
|
31
|
+
import type $$IMPORT_TYPEOF_1$$ from 'yargs';
|
|
32
|
+
|
|
33
|
+
import JsonReporter from './lib/JsonReporter';
|
|
34
|
+
import TerminalReporter from './lib/TerminalReporter';
|
|
35
|
+
import MetroServer from './Server';
|
|
36
36
|
import {loadConfig, mergeConfig, resolveConfig} from 'metro-config';
|
|
37
37
|
import {Terminal} from 'metro-core';
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
interface MetroMiddleWare {
|
|
39
|
+
type Yargs = typeof $$IMPORT_TYPEOF_1$$;
|
|
40
|
+
type MetroMiddleWare = {
|
|
43
41
|
attachHmrServer: (httpServer: HttpServer | HttpsServer) => void;
|
|
44
|
-
end: () => void
|
|
42
|
+
end: () => Promise<void>;
|
|
45
43
|
metroServer: MetroServer;
|
|
46
44
|
middleware: Middleware;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
waitForBundler?: boolean
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
interface WebsocketServer extends EventEmitter {
|
|
54
|
-
handleUpgrade<T = WebsocketServer>(
|
|
55
|
-
request: IncomingMessage,
|
|
56
|
-
socket: Duplex,
|
|
57
|
-
upgradeHead: Buffer,
|
|
58
|
-
callback: (client: T, request: IncomingMessage) => void,
|
|
59
|
-
): void;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export interface RunServerOptions {
|
|
45
|
+
};
|
|
46
|
+
export type RunMetroOptions = Omit<
|
|
47
|
+
ServerOptions,
|
|
48
|
+
keyof {waitForBundler?: boolean}
|
|
49
|
+
> & {waitForBundler?: boolean};
|
|
50
|
+
export type RunServerOptions = Readonly<{
|
|
63
51
|
hasReducedPerformance?: boolean;
|
|
64
52
|
host?: string;
|
|
65
|
-
onError?: (
|
|
53
|
+
onError?: ($$PARAM_0$$: Error & {code?: string}) => void;
|
|
66
54
|
onReady?: (server: HttpServer | HttpsServer) => void;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
/** @deprecated since version 0.61 */
|
|
55
|
+
onClose?: () => void;
|
|
56
|
+
secureServerOptions?: HttpsServerOptions;
|
|
70
57
|
secure?: boolean;
|
|
71
|
-
|
|
72
|
-
/** @deprecated since version 0.61 */
|
|
73
58
|
secureCert?: string;
|
|
74
|
-
|
|
75
|
-
/** @deprecated since version 0.61 */
|
|
76
59
|
secureKey?: string;
|
|
77
|
-
|
|
78
60
|
unstable_extraMiddleware?: ReadonlyArray<HandleFunction>;
|
|
79
61
|
waitForBundler?: boolean;
|
|
80
62
|
watch?: boolean;
|
|
81
|
-
websocketEndpoints?: {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
63
|
+
websocketEndpoints?: Readonly<{[path: string]: WebSocketServer}>;
|
|
64
|
+
}>;
|
|
65
|
+
export type RunServerResult = {httpServer: HttpServer | HttpsServer};
|
|
66
|
+
type BuildGraphOptions = {
|
|
67
|
+
entries: ReadonlyArray<string>;
|
|
68
|
+
customTransformOptions?: CustomTransformOptions;
|
|
69
|
+
dev?: boolean;
|
|
70
|
+
minify?: boolean;
|
|
71
|
+
onProgress?: (transformedFileCount: number, totalFileCount: number) => void;
|
|
72
|
+
platform?: string;
|
|
73
|
+
type?: 'module' | 'script';
|
|
74
|
+
};
|
|
75
|
+
export type RunBuildOptions = {
|
|
91
76
|
entry: string;
|
|
77
|
+
assets?: boolean;
|
|
92
78
|
dev?: boolean;
|
|
93
79
|
out?: string;
|
|
80
|
+
bundleOut?: string;
|
|
81
|
+
sourceMapOut?: string;
|
|
94
82
|
onBegin?: () => void;
|
|
95
83
|
onComplete?: () => void;
|
|
96
84
|
onProgress?: (transformedFileCount: number, totalFileCount: number) => void;
|
|
97
85
|
minify?: boolean;
|
|
98
|
-
output?: {
|
|
86
|
+
output?: Readonly<{
|
|
99
87
|
build: (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
88
|
+
$$PARAM_0$$: MetroServer,
|
|
89
|
+
$$PARAM_1$$: RequestOptions,
|
|
90
|
+
$$PARAM_2$$: void | BuildOptions,
|
|
103
91
|
) => Promise<{
|
|
104
92
|
code: string;
|
|
105
93
|
map: string;
|
|
106
94
|
assets?: ReadonlyArray<AssetData>;
|
|
107
95
|
}>;
|
|
108
96
|
save: (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
},
|
|
113
|
-
options: OutputOptions,
|
|
114
|
-
postSave: (...args: string[]) => void,
|
|
97
|
+
$$PARAM_0$$: {code: string; map: string},
|
|
98
|
+
$$PARAM_1$$: OutputOptions,
|
|
99
|
+
$$PARAM_2$$: (logMessage: string) => void,
|
|
115
100
|
) => Promise<unknown>;
|
|
116
|
-
}
|
|
101
|
+
}>;
|
|
117
102
|
platform?: string;
|
|
118
103
|
sourceMap?: boolean;
|
|
119
104
|
sourceMapUrl?: string;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
interface BuildGraphOptions {
|
|
123
|
-
entries: ReadonlyArray<string>;
|
|
105
|
+
customResolverOptions?: CustomResolverOptions;
|
|
124
106
|
customTransformOptions?: CustomTransformOptions;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
107
|
+
unstable_transformProfile?: TransformProfile;
|
|
108
|
+
};
|
|
109
|
+
export type RunBuildResult = {
|
|
110
|
+
code: string;
|
|
111
|
+
map: string;
|
|
112
|
+
assets?: ReadonlyArray<AssetData>;
|
|
113
|
+
};
|
|
114
|
+
type BuildCommandOptions = Readonly<{[$$Key$$: string]: unknown}> | null;
|
|
115
|
+
type ServeCommandOptions = Readonly<{[$$Key$$: string]: unknown}> | null;
|
|
116
|
+
type DependenciesCommandOptions = Readonly<{
|
|
117
|
+
[$$Key$$: string]: unknown;
|
|
118
|
+
}> | null;
|
|
119
|
+
export {Terminal, JsonReporter, TerminalReporter};
|
|
120
|
+
export type {AssetData} from './Assets';
|
|
121
|
+
export type {Reporter, ReportableEvent} from './lib/reporting';
|
|
122
|
+
export type {TerminalReportableEvent} from './lib/TerminalReporter';
|
|
123
|
+
export type {MetroConfig};
|
|
124
|
+
export declare function runMetro(
|
|
135
125
|
config: InputConfigT,
|
|
136
126
|
options?: RunMetroOptions,
|
|
137
127
|
): Promise<MetroServer>;
|
|
138
|
-
|
|
139
|
-
export
|
|
128
|
+
export {loadConfig, mergeConfig, resolveConfig};
|
|
129
|
+
export declare const createConnectMiddleware: (
|
|
140
130
|
config: ConfigT,
|
|
141
131
|
options?: RunMetroOptions,
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
export
|
|
145
|
-
config: ConfigT,
|
|
146
|
-
options: RunServerOptions,
|
|
147
|
-
): Promise<RunServerResult>;
|
|
148
|
-
|
|
149
|
-
export function runBuild(
|
|
132
|
+
) => Promise<MetroMiddleWare>;
|
|
133
|
+
export declare type createConnectMiddleware = typeof createConnectMiddleware;
|
|
134
|
+
export declare const runServer: (
|
|
150
135
|
config: ConfigT,
|
|
151
|
-
|
|
152
|
-
)
|
|
153
|
-
|
|
154
|
-
export
|
|
136
|
+
$$PARAM_1$$?: RunServerOptions,
|
|
137
|
+
) => Promise<RunServerResult>;
|
|
138
|
+
export declare type runServer = typeof runServer;
|
|
139
|
+
export declare const runBuild: (
|
|
155
140
|
config: ConfigT,
|
|
156
|
-
|
|
157
|
-
)
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
141
|
+
$$PARAM_1$$: RunBuildOptions,
|
|
142
|
+
) => Promise<RunBuildResult>;
|
|
143
|
+
export declare type runBuild = typeof runBuild;
|
|
144
|
+
export declare const buildGraph: (
|
|
145
|
+
config: InputConfigT,
|
|
146
|
+
$$PARAM_1$$: BuildGraphOptions,
|
|
147
|
+
) => Promise<ReadOnlyGraph>;
|
|
148
|
+
export declare type buildGraph = typeof buildGraph;
|
|
149
|
+
type AttachMetroCLIOptions = {
|
|
163
150
|
build?: BuildCommandOptions;
|
|
164
151
|
serve?: ServeCommandOptions;
|
|
165
|
-
dependencies?:
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
yargs: Yargs.Argv,
|
|
152
|
+
dependencies?: DependenciesCommandOptions;
|
|
153
|
+
};
|
|
154
|
+
export declare const attachMetroCli: (
|
|
155
|
+
yargs: Yargs,
|
|
170
156
|
options?: AttachMetroCLIOptions,
|
|
171
|
-
)
|
|
172
|
-
|
|
157
|
+
) => Yargs;
|
|
158
|
+
export declare type attachMetroCli = typeof attachMetroCli;
|
|
173
159
|
/**
|
|
174
160
|
* Backwards-compatibility with CommonJS consumers using interopRequireDefault.
|
|
175
161
|
* Do not add to this list.
|
|
@@ -180,6 +166,7 @@ declare const $$EXPORT_DEFAULT_DECLARATION$$: {
|
|
|
180
166
|
attachMetroCli: typeof attachMetroCli;
|
|
181
167
|
runServer: typeof runServer;
|
|
182
168
|
Terminal: typeof Terminal;
|
|
169
|
+
JsonReporter: typeof JsonReporter;
|
|
183
170
|
TerminalReporter: typeof TerminalReporter;
|
|
184
171
|
loadConfig: typeof loadConfig;
|
|
185
172
|
mergeConfig: typeof mergeConfig;
|
package/src/index.flow.js
CHANGED
|
@@ -71,28 +71,32 @@ var _metroConfig = require("metro-config");
|
|
|
71
71
|
var _metroCore = require("metro-core");
|
|
72
72
|
var _net = _interopRequireDefault(require("net"));
|
|
73
73
|
var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
|
74
|
-
function
|
|
75
|
-
if ("function"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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]);
|
|
74
|
+
function _interopRequireWildcard(e, t) {
|
|
75
|
+
if ("function" == typeof WeakMap)
|
|
76
|
+
var r = new WeakMap(),
|
|
77
|
+
n = new WeakMap();
|
|
78
|
+
return (_interopRequireWildcard = function (e, t) {
|
|
79
|
+
if (!t && e && e.__esModule) return e;
|
|
80
|
+
var o,
|
|
81
|
+
i,
|
|
82
|
+
f = { __proto__: null, default: e };
|
|
83
|
+
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
84
|
+
return f;
|
|
85
|
+
if ((o = t ? n : r)) {
|
|
86
|
+
if (o.has(e)) return o.get(e);
|
|
87
|
+
o.set(e, f);
|
|
94
88
|
}
|
|
95
|
-
|
|
89
|
+
for (const t in e)
|
|
90
|
+
"default" !== t &&
|
|
91
|
+
{}.hasOwnProperty.call(e, t) &&
|
|
92
|
+
((i =
|
|
93
|
+
(o = Object.defineProperty) &&
|
|
94
|
+
Object.getOwnPropertyDescriptor(e, t)) &&
|
|
95
|
+
(i.get || i.set)
|
|
96
|
+
? o(f, t, i)
|
|
97
|
+
: (f[t] = e[t]));
|
|
98
|
+
return f;
|
|
99
|
+
})(e, t);
|
|
96
100
|
}
|
|
97
101
|
function _interopRequireDefault(e) {
|
|
98
102
|
return e && e.__esModule ? e : { default: e };
|
|
@@ -190,7 +194,7 @@ const runServer = async (
|
|
|
190
194
|
secureKey,
|
|
191
195
|
unstable_extraMiddleware,
|
|
192
196
|
waitForBundler = false,
|
|
193
|
-
websocketEndpoints = {},
|
|
197
|
+
websocketEndpoints: userWebsocketEndpoints = {},
|
|
194
198
|
watch,
|
|
195
199
|
} = {},
|
|
196
200
|
) => {
|
|
@@ -200,7 +204,7 @@ const runServer = async (
|
|
|
200
204
|
_chalk.default.inverse.yellow.bold(" DEPRECATED "),
|
|
201
205
|
"The `secure`, `secureCert`, and `secureKey` options are now deprecated. " +
|
|
202
206
|
"Please use the `secureServerOptions` object instead to pass options to " +
|
|
203
|
-
"Metro's https development server.",
|
|
207
|
+
"Metro's https development server, or `config.server.tls` in Metro's configuration",
|
|
204
208
|
);
|
|
205
209
|
}
|
|
206
210
|
const connect = require("connect");
|
|
@@ -219,15 +223,29 @@ const runServer = async (
|
|
|
219
223
|
}
|
|
220
224
|
serverApp.use(middleware);
|
|
221
225
|
let httpServer;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
226
|
+
const { tls } = config.server;
|
|
227
|
+
if (
|
|
228
|
+
secure === true ||
|
|
229
|
+
secureServerOptions != null ||
|
|
230
|
+
typeof tls === "object"
|
|
231
|
+
) {
|
|
232
|
+
const options = {
|
|
233
|
+
key:
|
|
234
|
+
typeof tls === "object"
|
|
235
|
+
? tls.key
|
|
236
|
+
: typeof secureKey === "string"
|
|
237
|
+
? _fs.default.readFileSync(secureKey)
|
|
238
|
+
: undefined,
|
|
239
|
+
cert:
|
|
240
|
+
typeof tls === "object"
|
|
241
|
+
? tls.cert
|
|
242
|
+
: typeof secureCert === "string"
|
|
243
|
+
? _fs.default.readFileSync(secureCert)
|
|
244
|
+
: undefined,
|
|
245
|
+
ca: typeof tls === "object" ? tls.ca : undefined,
|
|
246
|
+
requestCert: typeof tls === "object" ? tls.requestCert : undefined,
|
|
247
|
+
...(secureServerOptions ?? {}),
|
|
248
|
+
};
|
|
231
249
|
httpServer = _https.default.createServer(options, serverApp);
|
|
232
250
|
} else {
|
|
233
251
|
httpServer = _http.default.createServer(serverApp);
|
|
@@ -247,8 +265,8 @@ const runServer = async (
|
|
|
247
265
|
port,
|
|
248
266
|
family,
|
|
249
267
|
});
|
|
250
|
-
websocketEndpoints = {
|
|
251
|
-
...
|
|
268
|
+
const websocketEndpoints = {
|
|
269
|
+
...userWebsocketEndpoints,
|
|
252
270
|
"/hot": (0, _createWebsocketServer.default)({
|
|
253
271
|
websocketServer: new _HmrServer.default(
|
|
254
272
|
metroServer.getBundler(),
|
|
@@ -349,7 +367,7 @@ const runBuild = async (
|
|
|
349
367
|
if (onComplete) {
|
|
350
368
|
onComplete();
|
|
351
369
|
}
|
|
352
|
-
if (out || bundleOut) {
|
|
370
|
+
if (out != null || bundleOut != null) {
|
|
353
371
|
const bundleOutput =
|
|
354
372
|
bundleOut ?? (0, _nullthrows.default)(out).replace(/(\.js)?$/, ".js");
|
|
355
373
|
const sourcemapOutput =
|