metro 0.83.4 → 0.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +17 -16
- package/src/Assets.js +2 -9
- package/src/Bundler/util.js +2 -9
- package/src/Bundler.js +1 -5
- package/src/DeltaBundler/DeltaCalculator.js +1 -5
- package/src/DeltaBundler/Graph.js +1 -5
- package/src/DeltaBundler/Serializers/baseJSBundle.js +1 -5
- package/src/DeltaBundler/Serializers/getAssets.js +1 -5
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js +1 -5
- package/src/DeltaBundler/Serializers/helpers/js.js +2 -9
- package/src/DeltaBundler/Serializers/hmrJSBundle.js +2 -9
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js +1 -5
- package/src/DeltaBundler/Transformer.js +1 -5
- package/src/DeltaBundler/Worker.flow.js +1 -5
- package/src/DeltaBundler/buildSubgraph.js +1 -5
- package/src/DeltaBundler/getTransformCacheKey.js +1 -5
- package/src/DeltaBundler/types.js +1 -5
- package/src/DeltaBundler.js +1 -5
- package/src/HmrServer.js +2 -9
- package/src/IncrementalBundler.js +2 -9
- package/src/ModuleGraph/worker/JsFileWrapping.js +2 -9
- package/src/ModuleGraph/worker/collectDependencies.js +2 -9
- package/src/ModuleGraph/worker/generateImportNames.js +1 -5
- package/src/Server/MultipartResponse.js +1 -5
- package/src/Server.js +37 -9
- package/src/Server.js.flow +48 -0
- package/src/cli-utils.js +1 -5
- package/src/commands/build.js +1 -5
- package/src/commands/dependencies.js +1 -5
- package/src/index.flow.js +2 -9
- 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 +2 -9
- package/src/integration_tests/execBundle.js +1 -5
- package/src/lib/BatchProcessor.js +1 -5
- package/src/lib/RamBundleParser.js +1 -5
- package/src/lib/TerminalReporter.js +2 -9
- package/src/lib/contextModule.js +1 -5
- package/src/lib/contextModuleTemplates.js +1 -4
- package/src/lib/createWebsocketServer.js +1 -5
- package/src/lib/formatBundlingError.js +1 -5
- package/src/lib/getAppendScripts.js +1 -5
- package/src/lib/getGraphId.js +1 -5
- package/src/lib/getPrependedScripts.js +2 -9
- package/src/lib/logToConsole.js +1 -5
- package/src/lib/parseBundleOptionsFromBundleRequestUrl.js +2 -9
- package/src/lib/pathUtils.js +1 -4
- package/src/lib/relativizeSourceMap.js +1 -5
- package/src/lib/reporting.js +1 -5
- package/src/lib/transformHelpers.js +1 -5
- package/src/node-haste/DependencyGraph/ModuleResolution.js +2 -9
- package/src/node-haste/DependencyGraph/createFileMap.js +2 -9
- package/src/node-haste/DependencyGraph.js +1 -5
- package/src/node-haste/Package.js +1 -5
- package/src/node-haste/PackageCache.js +1 -5
- package/src/node-haste/lib/AssetPaths.js +1 -5
- package/src/node-haste/lib/parsePlatformFilePath.js +1 -5
- package/src/shared/output/RamBundle/as-assets.js +1 -5
- package/src/shared/output/RamBundle/as-indexed-file.js +1 -5
- package/src/shared/output/RamBundle/util.js +1 -5
- package/src/shared/output/RamBundle/write-sourcemap.js +1 -5
- package/src/shared/output/RamBundle.js +1 -5
- package/src/shared/output/bundle.flow.js +1 -5
- package/src/shared/output/meta.js +1 -5
- package/src/shared/output/writeFile.js +1 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "metro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.84.0",
|
|
4
4
|
"description": "🚇 The JavaScript bundler for React Native.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": "src/cli.js",
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
},
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
|
-
"url": "git
|
|
14
|
+
"url": "git+https://github.com/facebook/metro.git",
|
|
15
|
+
"directory": "packages/metro"
|
|
15
16
|
},
|
|
16
17
|
"scripts": {
|
|
17
18
|
"prepare-release": "test -d build && rm -rf src.real && mv src src.real && mv build src",
|
|
@@ -39,18 +40,18 @@
|
|
|
39
40
|
"jest-worker": "^29.7.0",
|
|
40
41
|
"jsc-safe-url": "^0.2.2",
|
|
41
42
|
"lodash.throttle": "^4.1.1",
|
|
42
|
-
"metro-babel-transformer": "0.
|
|
43
|
-
"metro-cache": "0.
|
|
44
|
-
"metro-cache-key": "0.
|
|
45
|
-
"metro-config": "0.
|
|
46
|
-
"metro-core": "0.
|
|
47
|
-
"metro-file-map": "0.
|
|
48
|
-
"metro-resolver": "0.
|
|
49
|
-
"metro-runtime": "0.
|
|
50
|
-
"metro-source-map": "0.
|
|
51
|
-
"metro-symbolicate": "0.
|
|
52
|
-
"metro-transform-plugins": "0.
|
|
53
|
-
"metro-transform-worker": "0.
|
|
43
|
+
"metro-babel-transformer": "0.84.0",
|
|
44
|
+
"metro-cache": "0.84.0",
|
|
45
|
+
"metro-cache-key": "0.84.0",
|
|
46
|
+
"metro-config": "0.84.0",
|
|
47
|
+
"metro-core": "0.84.0",
|
|
48
|
+
"metro-file-map": "0.84.0",
|
|
49
|
+
"metro-resolver": "0.84.0",
|
|
50
|
+
"metro-runtime": "0.84.0",
|
|
51
|
+
"metro-source-map": "0.84.0",
|
|
52
|
+
"metro-symbolicate": "0.84.0",
|
|
53
|
+
"metro-transform-plugins": "0.84.0",
|
|
54
|
+
"metro-transform-worker": "0.84.0",
|
|
54
55
|
"mime-types": "^3.0.1",
|
|
55
56
|
"nullthrows": "^1.1.1",
|
|
56
57
|
"serialize-error": "^2.1.0",
|
|
@@ -71,7 +72,7 @@
|
|
|
71
72
|
"dedent": "^0.7.0",
|
|
72
73
|
"jest-snapshot": "^29.7.0",
|
|
73
74
|
"jest-snapshot-serializer-raw": "^1.2.0",
|
|
74
|
-
"metro-babel-register": "0.
|
|
75
|
+
"metro-babel-register": "0.84.0",
|
|
75
76
|
"metro-memory-fs": "*",
|
|
76
77
|
"mock-req": "^0.2.0",
|
|
77
78
|
"mock-res": "^0.6.0",
|
|
@@ -79,6 +80,6 @@
|
|
|
79
80
|
},
|
|
80
81
|
"license": "MIT",
|
|
81
82
|
"engines": {
|
|
82
|
-
"node": "
|
|
83
|
+
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
|
|
83
84
|
}
|
|
84
85
|
}
|
package/src/Assets.js
CHANGED
|
@@ -17,11 +17,7 @@ var _fs = _interopRequireDefault(require("fs"));
|
|
|
17
17
|
var _imageSize = _interopRequireDefault(require("image-size"));
|
|
18
18
|
var _path = _interopRequireDefault(require("path"));
|
|
19
19
|
function _interopRequireDefault(e) {
|
|
20
|
-
return e && e.__esModule
|
|
21
|
-
? e
|
|
22
|
-
: {
|
|
23
|
-
default: e,
|
|
24
|
-
};
|
|
20
|
+
return e && e.__esModule ? e : { default: e };
|
|
25
21
|
}
|
|
26
22
|
function _interopRequireWildcard(e, t) {
|
|
27
23
|
if ("function" == typeof WeakMap)
|
|
@@ -31,10 +27,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
31
27
|
if (!t && e && e.__esModule) return e;
|
|
32
28
|
var o,
|
|
33
29
|
i,
|
|
34
|
-
f = {
|
|
35
|
-
__proto__: null,
|
|
36
|
-
default: e,
|
|
37
|
-
};
|
|
30
|
+
f = { __proto__: null, default: e };
|
|
38
31
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
39
32
|
return f;
|
|
40
33
|
if ((o = t ? n : r)) {
|
package/src/Bundler/util.js
CHANGED
|
@@ -9,11 +9,7 @@ var babylon = _interopRequireWildcard(require("@babel/parser"));
|
|
|
9
9
|
var _template = _interopRequireDefault(require("@babel/template"));
|
|
10
10
|
var babelTypes = _interopRequireWildcard(require("@babel/types"));
|
|
11
11
|
function _interopRequireDefault(e) {
|
|
12
|
-
return e && e.__esModule
|
|
13
|
-
? e
|
|
14
|
-
: {
|
|
15
|
-
default: e,
|
|
16
|
-
};
|
|
12
|
+
return e && e.__esModule ? e : { default: e };
|
|
17
13
|
}
|
|
18
14
|
function _interopRequireWildcard(e, t) {
|
|
19
15
|
if ("function" == typeof WeakMap)
|
|
@@ -23,10 +19,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
23
19
|
if (!t && e && e.__esModule) return e;
|
|
24
20
|
var o,
|
|
25
21
|
i,
|
|
26
|
-
f = {
|
|
27
|
-
__proto__: null,
|
|
28
|
-
default: e,
|
|
29
|
-
};
|
|
22
|
+
f = { __proto__: null, default: e };
|
|
30
23
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
31
24
|
return f;
|
|
32
25
|
if ((o = t ? n : r)) {
|
package/src/Bundler.js
CHANGED
|
@@ -11,11 +11,7 @@ var _DependencyGraph = _interopRequireDefault(
|
|
|
11
11
|
require("./node-haste/DependencyGraph"),
|
|
12
12
|
);
|
|
13
13
|
function _interopRequireDefault(e) {
|
|
14
|
-
return e && e.__esModule
|
|
15
|
-
? e
|
|
16
|
-
: {
|
|
17
|
-
default: e,
|
|
18
|
-
};
|
|
14
|
+
return e && e.__esModule ? e : { default: e };
|
|
19
15
|
}
|
|
20
16
|
class Bundler {
|
|
21
17
|
constructor(config, options) {
|
|
@@ -8,11 +8,7 @@ var _Graph = require("./Graph");
|
|
|
8
8
|
var _events = _interopRequireDefault(require("events"));
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
10
|
function _interopRequireDefault(e) {
|
|
11
|
-
return e && e.__esModule
|
|
12
|
-
? e
|
|
13
|
-
: {
|
|
14
|
-
default: e,
|
|
15
|
-
};
|
|
11
|
+
return e && e.__esModule ? e : { default: e };
|
|
16
12
|
}
|
|
17
13
|
const debug = require("debug")("Metro:DeltaCalculator");
|
|
18
14
|
class DeltaCalculator extends _events.default {
|
|
@@ -11,11 +11,7 @@ var _buildSubgraph = require("./buildSubgraph");
|
|
|
11
11
|
var _invariant = _interopRequireDefault(require("invariant"));
|
|
12
12
|
var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
|
13
13
|
function _interopRequireDefault(e) {
|
|
14
|
-
return e && e.__esModule
|
|
15
|
-
? e
|
|
16
|
-
: {
|
|
17
|
-
default: e,
|
|
18
|
-
};
|
|
14
|
+
return e && e.__esModule ? e : { default: e };
|
|
19
15
|
}
|
|
20
16
|
function getInternalOptions({ transform, resolve, onProgress, lazy, shallow }) {
|
|
21
17
|
let numProcessed = 0;
|
|
@@ -11,11 +11,7 @@ var _processModules = _interopRequireDefault(
|
|
|
11
11
|
require("./helpers/processModules"),
|
|
12
12
|
);
|
|
13
13
|
function _interopRequireDefault(e) {
|
|
14
|
-
return e && e.__esModule
|
|
15
|
-
? e
|
|
16
|
-
: {
|
|
17
|
-
default: e,
|
|
18
|
-
};
|
|
14
|
+
return e && e.__esModule ? e : { default: e };
|
|
19
15
|
}
|
|
20
16
|
function baseJSBundle(entryPoint, preModules, graph, options) {
|
|
21
17
|
for (const module of graph.dependencies.values()) {
|
|
@@ -8,11 +8,7 @@ var _Assets = require("../../Assets");
|
|
|
8
8
|
var _js = require("./helpers/js");
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
10
|
function _interopRequireDefault(e) {
|
|
11
|
-
return e && e.__esModule
|
|
12
|
-
? e
|
|
13
|
-
: {
|
|
14
|
-
default: e,
|
|
15
|
-
};
|
|
11
|
+
return e && e.__esModule ? e : { default: e };
|
|
16
12
|
}
|
|
17
13
|
async function getAssets(dependencies, options) {
|
|
18
14
|
const promises = [];
|
|
@@ -16,11 +16,7 @@ var _sourceMapObject = require("./sourceMapObject");
|
|
|
16
16
|
var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
|
17
17
|
var _path = _interopRequireDefault(require("path"));
|
|
18
18
|
function _interopRequireDefault(e) {
|
|
19
|
-
return e && e.__esModule
|
|
20
|
-
? e
|
|
21
|
-
: {
|
|
22
|
-
default: e,
|
|
23
|
-
};
|
|
19
|
+
return e && e.__esModule ? e : { default: e };
|
|
24
20
|
}
|
|
25
21
|
async function getRamBundleInfo(entryPoint, pre, graph, options) {
|
|
26
22
|
let modules = [...pre, ...graph.dependencies.values()];
|
|
@@ -21,10 +21,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
21
21
|
if (!t && e && e.__esModule) return e;
|
|
22
22
|
var o,
|
|
23
23
|
i,
|
|
24
|
-
f = {
|
|
25
|
-
__proto__: null,
|
|
26
|
-
default: e,
|
|
27
|
-
};
|
|
24
|
+
f = { __proto__: null, default: e };
|
|
28
25
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
29
26
|
return f;
|
|
30
27
|
if ((o = t ? n : r)) {
|
|
@@ -44,11 +41,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
44
41
|
})(e, t);
|
|
45
42
|
}
|
|
46
43
|
function _interopRequireDefault(e) {
|
|
47
|
-
return e && e.__esModule
|
|
48
|
-
? e
|
|
49
|
-
: {
|
|
50
|
-
default: e,
|
|
51
|
-
};
|
|
44
|
+
return e && e.__esModule ? e : { default: e };
|
|
52
45
|
}
|
|
53
46
|
function wrapModule(module, options) {
|
|
54
47
|
const output = getJsOutput(module);
|
|
@@ -9,11 +9,7 @@ var jscSafeUrl = _interopRequireWildcard(require("jsc-safe-url"));
|
|
|
9
9
|
var _metroTransformPlugins = require("metro-transform-plugins");
|
|
10
10
|
var _path = _interopRequireDefault(require("path"));
|
|
11
11
|
function _interopRequireDefault(e) {
|
|
12
|
-
return e && e.__esModule
|
|
13
|
-
? e
|
|
14
|
-
: {
|
|
15
|
-
default: e,
|
|
16
|
-
};
|
|
12
|
+
return e && e.__esModule ? e : { default: e };
|
|
17
13
|
}
|
|
18
14
|
function _interopRequireWildcard(e, t) {
|
|
19
15
|
if ("function" == typeof WeakMap)
|
|
@@ -23,10 +19,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
23
19
|
if (!t && e && e.__esModule) return e;
|
|
24
20
|
var o,
|
|
25
21
|
i,
|
|
26
|
-
f = {
|
|
27
|
-
__proto__: null,
|
|
28
|
-
default: e,
|
|
29
|
-
};
|
|
22
|
+
f = { __proto__: null, default: e };
|
|
30
23
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
31
24
|
return f;
|
|
32
25
|
if ((o = t ? n : r)) {
|
|
@@ -11,11 +11,7 @@ var _getSourceMapInfo = _interopRequireDefault(
|
|
|
11
11
|
var _js = require("./helpers/js");
|
|
12
12
|
var _metroSourceMap = require("metro-source-map");
|
|
13
13
|
function _interopRequireDefault(e) {
|
|
14
|
-
return e && e.__esModule
|
|
15
|
-
? e
|
|
16
|
-
: {
|
|
17
|
-
default: e,
|
|
18
|
-
};
|
|
14
|
+
return e && e.__esModule ? e : { default: e };
|
|
19
15
|
}
|
|
20
16
|
function getSourceMapInfosImpl(isBlocking, onDone, modules, options) {
|
|
21
17
|
const sourceMapInfos = [];
|
|
@@ -15,11 +15,7 @@ var _fs = _interopRequireDefault(require("fs"));
|
|
|
15
15
|
var _metroCache = require("metro-cache");
|
|
16
16
|
var _path = _interopRequireDefault(require("path"));
|
|
17
17
|
function _interopRequireDefault(e) {
|
|
18
|
-
return e && e.__esModule
|
|
19
|
-
? e
|
|
20
|
-
: {
|
|
21
|
-
default: e,
|
|
22
|
-
};
|
|
18
|
+
return e && e.__esModule ? e : { default: e };
|
|
23
19
|
}
|
|
24
20
|
const debug = require("debug")("Metro:Transformer");
|
|
25
21
|
class Transformer {
|
|
@@ -9,11 +9,7 @@ var _crypto = _interopRequireDefault(require("crypto"));
|
|
|
9
9
|
var _fs = _interopRequireDefault(require("fs"));
|
|
10
10
|
var _path = _interopRequireDefault(require("path"));
|
|
11
11
|
function _interopRequireDefault(e) {
|
|
12
|
-
return e && e.__esModule
|
|
13
|
-
? e
|
|
14
|
-
: {
|
|
15
|
-
default: e,
|
|
16
|
-
};
|
|
12
|
+
return e && e.__esModule ? e : { default: e };
|
|
17
13
|
}
|
|
18
14
|
function asDeserializedBuffer(value) {
|
|
19
15
|
if (Buffer.isBuffer(value)) {
|
|
@@ -8,11 +8,7 @@ var _contextModule = require("../lib/contextModule");
|
|
|
8
8
|
var _isResolvedDependency = require("../lib/isResolvedDependency");
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
10
|
function _interopRequireDefault(e) {
|
|
11
|
-
return e && e.__esModule
|
|
12
|
-
? e
|
|
13
|
-
: {
|
|
14
|
-
default: e,
|
|
15
|
-
};
|
|
11
|
+
return e && e.__esModule ? e : { default: e };
|
|
16
12
|
}
|
|
17
13
|
function resolveDependencies(parentPath, dependencies, resolve) {
|
|
18
14
|
const maybeResolvedDeps = new Map();
|
|
@@ -7,11 +7,7 @@ exports.default = getTransformCacheKey;
|
|
|
7
7
|
var _crypto = _interopRequireDefault(require("crypto"));
|
|
8
8
|
var _metroCacheKey = require("metro-cache-key");
|
|
9
9
|
function _interopRequireDefault(e) {
|
|
10
|
-
return e && e.__esModule
|
|
11
|
-
? e
|
|
12
|
-
: {
|
|
13
|
-
default: e,
|
|
14
|
-
};
|
|
10
|
+
return e && e.__esModule ? e : { default: e };
|
|
15
11
|
}
|
|
16
12
|
const VERSION = require("../../package.json").version;
|
|
17
13
|
function getTransformCacheKey(opts) {
|
package/src/DeltaBundler.js
CHANGED
|
@@ -8,11 +8,7 @@ var _DeltaCalculator = _interopRequireDefault(
|
|
|
8
8
|
require("./DeltaBundler/DeltaCalculator"),
|
|
9
9
|
);
|
|
10
10
|
function _interopRequireDefault(e) {
|
|
11
|
-
return e && e.__esModule
|
|
12
|
-
? e
|
|
13
|
-
: {
|
|
14
|
-
default: e,
|
|
15
|
-
};
|
|
11
|
+
return e && e.__esModule ? e : { default: e };
|
|
16
12
|
}
|
|
17
13
|
class DeltaBundler {
|
|
18
14
|
_deltaCalculators = new Map();
|
package/src/HmrServer.js
CHANGED
|
@@ -39,10 +39,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
39
39
|
if (!t && e && e.__esModule) return e;
|
|
40
40
|
var o,
|
|
41
41
|
i,
|
|
42
|
-
f = {
|
|
43
|
-
__proto__: null,
|
|
44
|
-
default: e,
|
|
45
|
-
};
|
|
42
|
+
f = { __proto__: null, default: e };
|
|
46
43
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
47
44
|
return f;
|
|
48
45
|
if ((o = t ? n : r)) {
|
|
@@ -62,11 +59,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
62
59
|
})(e, t);
|
|
63
60
|
}
|
|
64
61
|
function _interopRequireDefault(e) {
|
|
65
|
-
return e && e.__esModule
|
|
66
|
-
? e
|
|
67
|
-
: {
|
|
68
|
-
default: e,
|
|
69
|
-
};
|
|
62
|
+
return e && e.__esModule ? e : { default: e };
|
|
70
63
|
}
|
|
71
64
|
const debug = require("debug")("Metro:HMR");
|
|
72
65
|
const { createActionStartEntry, createActionEndEntry, log } = _metroCore.Logger;
|
|
@@ -27,10 +27,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
27
27
|
if (!t && e && e.__esModule) return e;
|
|
28
28
|
var o,
|
|
29
29
|
i,
|
|
30
|
-
f = {
|
|
31
|
-
__proto__: null,
|
|
32
|
-
default: e,
|
|
33
|
-
};
|
|
30
|
+
f = { __proto__: null, default: e };
|
|
34
31
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
35
32
|
return f;
|
|
36
33
|
if ((o = t ? n : r)) {
|
|
@@ -50,11 +47,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
50
47
|
})(e, t);
|
|
51
48
|
}
|
|
52
49
|
function _interopRequireDefault(e) {
|
|
53
|
-
return e && e.__esModule
|
|
54
|
-
? e
|
|
55
|
-
: {
|
|
56
|
-
default: e,
|
|
57
|
-
};
|
|
50
|
+
return e && e.__esModule ? e : { default: e };
|
|
58
51
|
}
|
|
59
52
|
function createRevisionId() {
|
|
60
53
|
return _crypto.default.randomBytes(8).toString("hex");
|
|
@@ -20,10 +20,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
20
20
|
if (!t && e && e.__esModule) return e;
|
|
21
21
|
var o,
|
|
22
22
|
i,
|
|
23
|
-
f = {
|
|
24
|
-
__proto__: null,
|
|
25
|
-
default: e,
|
|
26
|
-
};
|
|
23
|
+
f = { __proto__: null, default: e };
|
|
27
24
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
28
25
|
return f;
|
|
29
26
|
if ((o = t ? n : r)) {
|
|
@@ -43,11 +40,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
43
40
|
})(e, t);
|
|
44
41
|
}
|
|
45
42
|
function _interopRequireDefault(e) {
|
|
46
|
-
return e && e.__esModule
|
|
47
|
-
? e
|
|
48
|
-
: {
|
|
49
|
-
default: e,
|
|
50
|
-
};
|
|
43
|
+
return e && e.__esModule ? e : { default: e };
|
|
51
44
|
}
|
|
52
45
|
const WRAP_NAME = (exports.WRAP_NAME = "$$_REQUIRE");
|
|
53
46
|
const IIFE_PARAM = _template.default.expression(
|
|
@@ -20,10 +20,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
20
20
|
if (!t && e && e.__esModule) return e;
|
|
21
21
|
var o,
|
|
22
22
|
i,
|
|
23
|
-
f = {
|
|
24
|
-
__proto__: null,
|
|
25
|
-
default: e,
|
|
26
|
-
};
|
|
23
|
+
f = { __proto__: null, default: e };
|
|
27
24
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
28
25
|
return f;
|
|
29
26
|
if ((o = t ? n : r)) {
|
|
@@ -43,11 +40,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
43
40
|
})(e, t);
|
|
44
41
|
}
|
|
45
42
|
function _interopRequireDefault(e) {
|
|
46
|
-
return e && e.__esModule
|
|
47
|
-
? e
|
|
48
|
-
: {
|
|
49
|
-
default: e,
|
|
50
|
-
};
|
|
43
|
+
return e && e.__esModule ? e : { default: e };
|
|
51
44
|
}
|
|
52
45
|
function collectDependencies(ast, options) {
|
|
53
46
|
const visited = new WeakSet();
|
|
@@ -7,11 +7,7 @@ exports.default = generateImportNames;
|
|
|
7
7
|
var _traverse = _interopRequireDefault(require("@babel/traverse"));
|
|
8
8
|
var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
|
9
9
|
function _interopRequireDefault(e) {
|
|
10
|
-
return e && e.__esModule
|
|
11
|
-
? e
|
|
12
|
-
: {
|
|
13
|
-
default: e,
|
|
14
|
-
};
|
|
10
|
+
return e && e.__esModule ? e : { default: e };
|
|
15
11
|
}
|
|
16
12
|
function generateImportNames(ast) {
|
|
17
13
|
let importDefault;
|
|
@@ -6,11 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _accepts = _interopRequireDefault(require("accepts"));
|
|
8
8
|
function _interopRequireDefault(e) {
|
|
9
|
-
return e && e.__esModule
|
|
10
|
-
? e
|
|
11
|
-
: {
|
|
12
|
-
default: e,
|
|
13
|
-
};
|
|
9
|
+
return e && e.__esModule ? e : { default: e };
|
|
14
10
|
}
|
|
15
11
|
const CRLF = "\r\n";
|
|
16
12
|
const BOUNDARY = "3beqjf3apnqeu3h5jqorms4i";
|
package/src/Server.js
CHANGED
|
@@ -66,10 +66,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
66
66
|
if (!t && e && e.__esModule) return e;
|
|
67
67
|
var o,
|
|
68
68
|
i,
|
|
69
|
-
f = {
|
|
70
|
-
__proto__: null,
|
|
71
|
-
default: e,
|
|
72
|
-
};
|
|
69
|
+
f = { __proto__: null, default: e };
|
|
73
70
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
74
71
|
return f;
|
|
75
72
|
if ((o = t ? n : r)) {
|
|
@@ -89,11 +86,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
89
86
|
})(e, t);
|
|
90
87
|
}
|
|
91
88
|
function _interopRequireDefault(e) {
|
|
92
|
-
return e && e.__esModule
|
|
93
|
-
? e
|
|
94
|
-
: {
|
|
95
|
-
default: e,
|
|
96
|
-
};
|
|
89
|
+
return e && e.__esModule ? e : { default: e };
|
|
97
90
|
}
|
|
98
91
|
const debug = require("debug")("Metro:Server");
|
|
99
92
|
const { createActionStartEntry, createActionEndEntry, log } = _metroCore.Logger;
|
|
@@ -136,6 +129,8 @@ class Server {
|
|
|
136
129
|
]),
|
|
137
130
|
];
|
|
138
131
|
this._isEnded = false;
|
|
132
|
+
this._fetchTimings = [];
|
|
133
|
+
this._activeFetchCount = 0;
|
|
139
134
|
this._createModuleId = config.serializer.createModuleIdFactory();
|
|
140
135
|
this._bundler = new _IncrementalBundler.default(config, {
|
|
141
136
|
hasReducedPerformance: options && options.hasReducedPerformance,
|
|
@@ -748,8 +743,16 @@ class Server {
|
|
|
748
743
|
const logEntry = log(
|
|
749
744
|
createActionStartEntry(createStartEntry(startContext)),
|
|
750
745
|
);
|
|
746
|
+
const fetchTiming = {
|
|
747
|
+
graphId,
|
|
748
|
+
startTime: requestStartTimestamp,
|
|
749
|
+
endTime: null,
|
|
750
|
+
isPrefetch: req.method === "HEAD",
|
|
751
|
+
};
|
|
751
752
|
let result;
|
|
752
753
|
try {
|
|
754
|
+
this._fetchTimings.push(fetchTiming);
|
|
755
|
+
this._activeFetchCount++;
|
|
753
756
|
result = await build(startContext);
|
|
754
757
|
} catch (error) {
|
|
755
758
|
const formattedError = (0, _formatBundlingError.default)(error);
|
|
@@ -779,6 +782,31 @@ class Server {
|
|
|
779
782
|
debug("Bundling error", error);
|
|
780
783
|
buildContext.bundlePerfLogger.end("FAIL");
|
|
781
784
|
return;
|
|
785
|
+
} finally {
|
|
786
|
+
fetchTiming.endTime =
|
|
787
|
+
_perf_hooks.performance.timeOrigin + _perf_hooks.performance.now();
|
|
788
|
+
if (!fetchTiming.isPrefetch) {
|
|
789
|
+
buildContext.bundlePerfLogger.annotate({
|
|
790
|
+
bool: {
|
|
791
|
+
had_competing_prefetch: this._fetchTimings
|
|
792
|
+
.filter((t) => t.isPrefetch && t.graphId !== graphId)
|
|
793
|
+
.some((prefetch) => {
|
|
794
|
+
const prefetchEndTime =
|
|
795
|
+
prefetch.endTime ?? Number.MAX_SAFE_INTEGER;
|
|
796
|
+
const fetchEndTime =
|
|
797
|
+
fetchTiming.endTime ?? Number.MAX_SAFE_INTEGER;
|
|
798
|
+
return (
|
|
799
|
+
prefetch.startTime < fetchEndTime &&
|
|
800
|
+
prefetchEndTime > fetchTiming.startTime
|
|
801
|
+
);
|
|
802
|
+
}),
|
|
803
|
+
},
|
|
804
|
+
});
|
|
805
|
+
}
|
|
806
|
+
this._activeFetchCount--;
|
|
807
|
+
if (this._activeFetchCount === 0) {
|
|
808
|
+
this._fetchTimings = [];
|
|
809
|
+
}
|
|
782
810
|
}
|
|
783
811
|
const endContext = {
|
|
784
812
|
...startContext,
|
package/src/Server.js.flow
CHANGED
|
@@ -130,6 +130,13 @@ export type ServerOptions = Readonly<{
|
|
|
130
130
|
const DELTA_ID_HEADER = 'X-Metro-Delta-ID';
|
|
131
131
|
const FILES_CHANGED_COUNT_HEADER = 'X-Metro-Files-Changed-Count';
|
|
132
132
|
|
|
133
|
+
type FetchTiming = {
|
|
134
|
+
graphId: GraphId,
|
|
135
|
+
startTime: number,
|
|
136
|
+
endTime: number | null,
|
|
137
|
+
isPrefetch: boolean,
|
|
138
|
+
};
|
|
139
|
+
|
|
133
140
|
export default class Server {
|
|
134
141
|
_bundler: IncrementalBundler;
|
|
135
142
|
_config: ConfigT;
|
|
@@ -144,6 +151,8 @@ export default class Server {
|
|
|
144
151
|
_sourceRequestRoutingMap: ReadonlyArray<
|
|
145
152
|
[pathnamePrefix: string, normalizedRootDir: string],
|
|
146
153
|
>;
|
|
154
|
+
_fetchTimings: Array<FetchTiming>;
|
|
155
|
+
_activeFetchCount: number;
|
|
147
156
|
|
|
148
157
|
constructor(config: ConfigT, options?: ServerOptions) {
|
|
149
158
|
this._config = config;
|
|
@@ -176,6 +185,8 @@ export default class Server {
|
|
|
176
185
|
]),
|
|
177
186
|
];
|
|
178
187
|
this._isEnded = false;
|
|
188
|
+
this._fetchTimings = [];
|
|
189
|
+
this._activeFetchCount = 0;
|
|
179
190
|
|
|
180
191
|
// TODO(T34760917): These two properties should eventually be instantiated
|
|
181
192
|
// elsewhere and passed as parameters, since they are also needed by
|
|
@@ -926,8 +937,18 @@ export default class Server {
|
|
|
926
937
|
createActionStartEntry(createStartEntry(startContext)),
|
|
927
938
|
);
|
|
928
939
|
|
|
940
|
+
const fetchTiming: FetchTiming = {
|
|
941
|
+
graphId,
|
|
942
|
+
startTime: requestStartTimestamp,
|
|
943
|
+
endTime: null,
|
|
944
|
+
isPrefetch: req.method === 'HEAD',
|
|
945
|
+
};
|
|
946
|
+
|
|
929
947
|
let result;
|
|
930
948
|
try {
|
|
949
|
+
this._fetchTimings.push(fetchTiming);
|
|
950
|
+
this._activeFetchCount++;
|
|
951
|
+
|
|
931
952
|
result = await build(startContext);
|
|
932
953
|
} catch (error) {
|
|
933
954
|
const formattedError = formatBundlingError(error);
|
|
@@ -960,6 +981,33 @@ export default class Server {
|
|
|
960
981
|
buildContext.bundlePerfLogger.end('FAIL');
|
|
961
982
|
|
|
962
983
|
return;
|
|
984
|
+
} finally {
|
|
985
|
+
fetchTiming.endTime = performance.timeOrigin + performance.now();
|
|
986
|
+
|
|
987
|
+
if (!fetchTiming.isPrefetch) {
|
|
988
|
+
buildContext.bundlePerfLogger.annotate({
|
|
989
|
+
bool: {
|
|
990
|
+
had_competing_prefetch: this._fetchTimings
|
|
991
|
+
// fetching the same bundle as a prefetch don't compete, since they resolve a shared promise for the same graph id
|
|
992
|
+
.filter(t => t.isPrefetch && t.graphId !== graphId)
|
|
993
|
+
.some(prefetch => {
|
|
994
|
+
const prefetchEndTime =
|
|
995
|
+
prefetch.endTime ?? Number.MAX_SAFE_INTEGER;
|
|
996
|
+
const fetchEndTime =
|
|
997
|
+
fetchTiming.endTime ?? Number.MAX_SAFE_INTEGER;
|
|
998
|
+
return (
|
|
999
|
+
prefetch.startTime < fetchEndTime &&
|
|
1000
|
+
prefetchEndTime > fetchTiming.startTime
|
|
1001
|
+
);
|
|
1002
|
+
}),
|
|
1003
|
+
},
|
|
1004
|
+
});
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
this._activeFetchCount--;
|
|
1008
|
+
if (this._activeFetchCount === 0) {
|
|
1009
|
+
this._fetchTimings = [];
|
|
1010
|
+
}
|
|
963
1011
|
}
|
|
964
1012
|
|
|
965
1013
|
const endContext: ProcessEndContext<T> = {
|
package/src/cli-utils.js
CHANGED
|
@@ -6,11 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.watchFile = exports.makeAsyncCommand = void 0;
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
8
|
function _interopRequireDefault(e) {
|
|
9
|
-
return e && e.__esModule
|
|
10
|
-
? e
|
|
11
|
-
: {
|
|
12
|
-
default: e,
|
|
13
|
-
};
|
|
9
|
+
return e && e.__esModule ? e : { default: e };
|
|
14
10
|
}
|
|
15
11
|
const watchFile = async function (filename, callback) {
|
|
16
12
|
_fs.default.watchFile(filename, () => {
|
package/src/commands/build.js
CHANGED
|
@@ -14,11 +14,7 @@ var _TerminalReporter = _interopRequireDefault(
|
|
|
14
14
|
var _metroConfig = require("metro-config");
|
|
15
15
|
var _metroCore = require("metro-core");
|
|
16
16
|
function _interopRequireDefault(e) {
|
|
17
|
-
return e && e.__esModule
|
|
18
|
-
? e
|
|
19
|
-
: {
|
|
20
|
-
default: e,
|
|
21
|
-
};
|
|
17
|
+
return e && e.__esModule ? e : { default: e };
|
|
22
18
|
}
|
|
23
19
|
const term = new _metroCore.Terminal(process.stdout);
|
|
24
20
|
const updateReporter = new _TerminalReporter.default(term);
|