metro 0.63.0 → 0.64.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 +22 -22
- package/src/Assets.js +8 -2
- package/src/Bundler/util.js +17 -10
- package/src/Bundler/util.js.flow +13 -12
- package/src/Bundler.js +4 -0
- package/src/DeltaBundler/DeltaCalculator.js +6 -1
- package/src/DeltaBundler/Serializers/baseBytecodeBundle.js +10 -0
- package/src/DeltaBundler/Serializers/baseJSBundle.js +5 -0
- package/src/DeltaBundler/Serializers/getAllFiles.js +6 -0
- package/src/DeltaBundler/Serializers/getAssets.js +4 -0
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js +6 -0
- package/src/DeltaBundler/Serializers/helpers/bytecode.js +5 -0
- package/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +5 -0
- package/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +2 -0
- package/src/DeltaBundler/Serializers/helpers/processModules.js +2 -0
- package/src/DeltaBundler/Serializers/hmrJSBundle.js +8 -2
- package/src/DeltaBundler/Serializers/sourceMapGenerator.js +4 -0
- package/src/DeltaBundler/Serializers/sourceMapObject.js +4 -0
- package/src/DeltaBundler/Transformer.js +16 -0
- package/src/DeltaBundler/Worker.js +4 -0
- package/src/DeltaBundler/WorkerFarm.js +9 -0
- package/src/DeltaBundler/computeDelta.js +5 -0
- package/src/DeltaBundler/getTransformCacheKey.js +1 -1
- package/src/DeltaBundler/mergeDeltas.js +5 -0
- package/src/DeltaBundler/traverseDependencies.js +14 -0
- package/src/DeltaBundler.js +6 -1
- package/src/HmrServer.js +18 -0
- package/src/IncrementalBundler.js +16 -0
- package/src/ModuleGraph/node-haste/Package.js +5 -0
- package/src/ModuleGraph/node-haste/node-haste.flow.js.flow +0 -2
- package/src/ModuleGraph/node-haste/node-haste.js +3 -0
- package/src/ModuleGraph/node-haste/node-haste.js.flow +4 -2
- package/src/ModuleGraph/output/indexed-ram-bundle.js +10 -0
- package/src/ModuleGraph/output/multiple-files-ram-bundle.js +10 -0
- package/src/ModuleGraph/output/reverse-dependency-map-references.js +33 -9
- package/src/ModuleGraph/output/reverse-dependency-map-references.js.flow +28 -13
- package/src/ModuleGraph/output/util.js +59 -25
- package/src/ModuleGraph/output/util.js.flow +59 -23
- package/src/ModuleGraph/test-helpers.js +74 -2
- package/src/ModuleGraph/types.flow.js.flow +13 -8
- package/src/ModuleGraph/worker/JsFileWrapping.js +90 -12
- package/src/ModuleGraph/worker/JsFileWrapping.js.flow +34 -20
- package/src/ModuleGraph/worker/collectDependencies.js +329 -205
- package/src/ModuleGraph/worker/collectDependencies.js.flow +397 -209
- package/src/ModuleGraph/worker/generate.js.flow +2 -2
- package/src/ModuleGraph/worker/generateImportNames.js +2 -1
- package/src/ModuleGraph/worker/generateImportNames.js.flow +3 -4
- package/src/ModuleGraph/worker/mergeSourceMaps.js +5 -0
- package/src/Server/symbolicate.js +14 -0
- package/src/Server.js +16 -3
- package/src/Server.js.flow +1 -0
- package/src/cli-utils.js +4 -0
- package/src/cli.js +0 -0
- package/src/commands/build.js +10 -0
- package/src/commands/build.js.flow +2 -0
- package/src/commands/dependencies.js +4 -0
- package/src/commands/serve.js +5 -0
- package/src/commands/serve.js.flow +2 -0
- package/src/index.js +13 -1
- package/src/index.js.flow +2 -0
- package/src/integration_tests/basic_bundle/import-export/index.js +19 -2
- package/src/integration_tests/execBundle.js +2 -2
- package/src/integration_tests/metro.config.js +4 -0
- package/src/lib/BatchProcessor.js +1 -1
- package/src/lib/TerminalReporter.js +10 -0
- package/src/lib/attachWebsocketServer.js +5 -1
- package/src/lib/bundleToBytecode.js +7 -3
- package/src/lib/bundleToString.js +6 -1
- package/src/lib/debounceAsyncQueue.js +4 -0
- package/src/lib/getAppendScripts.js +2 -0
- package/src/lib/getPreludeCode.js +2 -0
- package/src/lib/getPrependedScripts.js +11 -0
- package/src/lib/logToConsole.js +1 -2
- package/src/lib/parseOptionsFromUrl.js +5 -0
- package/src/lib/reporting.js +1 -1
- package/src/lib/splitBundleOptions.js +1 -1
- package/src/lib/transformHelpers.js +19 -3
- package/src/lib/transformHelpers.js.flow +4 -4
- package/src/node-haste/DependencyGraph/ModuleResolution.js +10 -2
- package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +6 -5
- package/src/node-haste/DependencyGraph.js +11 -2
- package/src/node-haste/DependencyGraph.js.flow +5 -0
- package/src/node-haste/Package.js +2 -0
- package/src/shared/output/RamBundle/as-assets.js +1 -2
- package/src/shared/output/RamBundle/as-indexed-file.js +2 -0
- package/src/shared/output/RamBundle/util.js +2 -2
- package/src/shared/output/RamBundle.js +9 -0
- package/src/shared/output/bundle.js +9 -0
- package/src/ModuleGraph/worker/optimizeDependencies.js +0 -122
- package/src/ModuleGraph/worker/optimizeDependencies.js.flow +0 -128
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"use strict";
|
|
11
11
|
|
|
12
12
|
const invariant = require("invariant");
|
|
13
|
-
|
|
14
13
|
/**
|
|
15
14
|
* We batch items together trying to minimize their processing, for example as
|
|
16
15
|
* network queries. For that we wait a small moment before processing a batch.
|
|
@@ -18,6 +17,7 @@ const invariant = require("invariant");
|
|
|
18
17
|
* if we have many items pending in a short amount of time, we can start
|
|
19
18
|
* processing right away.
|
|
20
19
|
*/
|
|
20
|
+
|
|
21
21
|
class BatchProcessor {
|
|
22
22
|
constructor(options, processBatch) {
|
|
23
23
|
this._options = options;
|
|
@@ -31,6 +31,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
31
31
|
var _n = true;
|
|
32
32
|
var _d = false;
|
|
33
33
|
var _e = undefined;
|
|
34
|
+
|
|
34
35
|
try {
|
|
35
36
|
for (
|
|
36
37
|
var _i = arr[Symbol.iterator](), _s;
|
|
@@ -38,6 +39,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
38
39
|
_n = true
|
|
39
40
|
) {
|
|
40
41
|
_arr.push(_s.value);
|
|
42
|
+
|
|
41
43
|
if (i && _arr.length === i) break;
|
|
42
44
|
}
|
|
43
45
|
} catch (err) {
|
|
@@ -50,6 +52,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
50
52
|
if (_d) throw _e;
|
|
51
53
|
}
|
|
52
54
|
}
|
|
55
|
+
|
|
53
56
|
return _arr;
|
|
54
57
|
}
|
|
55
58
|
|
|
@@ -93,12 +96,15 @@ function _arrayWithoutHoles(arr) {
|
|
|
93
96
|
|
|
94
97
|
function _arrayLikeToArray(arr, len) {
|
|
95
98
|
if (len == null || len > arr.length) len = arr.length;
|
|
99
|
+
|
|
96
100
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
101
|
+
|
|
97
102
|
return arr2;
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
function ownKeys(object, enumerableOnly) {
|
|
101
106
|
var keys = Object.keys(object);
|
|
107
|
+
|
|
102
108
|
if (Object.getOwnPropertySymbols) {
|
|
103
109
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
104
110
|
if (enumerableOnly)
|
|
@@ -107,12 +113,14 @@ function ownKeys(object, enumerableOnly) {
|
|
|
107
113
|
});
|
|
108
114
|
keys.push.apply(keys, symbols);
|
|
109
115
|
}
|
|
116
|
+
|
|
110
117
|
return keys;
|
|
111
118
|
}
|
|
112
119
|
|
|
113
120
|
function _objectSpread(target) {
|
|
114
121
|
for (var i = 1; i < arguments.length; i++) {
|
|
115
122
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
123
|
+
|
|
116
124
|
if (i % 2) {
|
|
117
125
|
ownKeys(Object(source), true).forEach(function(key) {
|
|
118
126
|
_defineProperty(target, key, source[key]);
|
|
@@ -129,6 +137,7 @@ function _objectSpread(target) {
|
|
|
129
137
|
});
|
|
130
138
|
}
|
|
131
139
|
}
|
|
140
|
+
|
|
132
141
|
return target;
|
|
133
142
|
}
|
|
134
143
|
|
|
@@ -143,6 +152,7 @@ function _defineProperty(obj, key, value) {
|
|
|
143
152
|
} else {
|
|
144
153
|
obj[key] = value;
|
|
145
154
|
}
|
|
155
|
+
|
|
146
156
|
return obj;
|
|
147
157
|
}
|
|
148
158
|
|
|
@@ -17,6 +17,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
17
17
|
reject(error);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
+
|
|
20
21
|
if (info.done) {
|
|
21
22
|
resolve(value);
|
|
22
23
|
} else {
|
|
@@ -30,17 +31,19 @@ function _asyncToGenerator(fn) {
|
|
|
30
31
|
args = arguments;
|
|
31
32
|
return new Promise(function(resolve, reject) {
|
|
32
33
|
var gen = fn.apply(self, args);
|
|
34
|
+
|
|
33
35
|
function _next(value) {
|
|
34
36
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
35
37
|
}
|
|
38
|
+
|
|
36
39
|
function _throw(err) {
|
|
37
40
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
38
41
|
}
|
|
42
|
+
|
|
39
43
|
_next(undefined);
|
|
40
44
|
});
|
|
41
45
|
};
|
|
42
46
|
}
|
|
43
|
-
|
|
44
47
|
/**
|
|
45
48
|
* Attach a websocket server to an already existing HTTP[S] server, and forward
|
|
46
49
|
* the received events on the given "websocketServer" parameter. It must be an
|
|
@@ -51,6 +54,7 @@ function _asyncToGenerator(fn) {
|
|
|
51
54
|
* - onClientMessage
|
|
52
55
|
* - onClientDisconnect
|
|
53
56
|
*/
|
|
57
|
+
|
|
54
58
|
module.exports = function attachWebsocketServer(_ref) {
|
|
55
59
|
let httpServer = _ref.httpServer,
|
|
56
60
|
websocketServer = _ref.websocketServer,
|
|
@@ -31,6 +31,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
31
31
|
var _n = true;
|
|
32
32
|
var _d = false;
|
|
33
33
|
var _e = undefined;
|
|
34
|
+
|
|
34
35
|
try {
|
|
35
36
|
for (
|
|
36
37
|
var _i = arr[Symbol.iterator](), _s;
|
|
@@ -38,6 +39,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
38
39
|
_n = true
|
|
39
40
|
) {
|
|
40
41
|
_arr.push(_s.value);
|
|
42
|
+
|
|
41
43
|
if (i && _arr.length === i) break;
|
|
42
44
|
}
|
|
43
45
|
} catch (err) {
|
|
@@ -50,6 +52,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
50
52
|
if (_d) throw _e;
|
|
51
53
|
}
|
|
52
54
|
}
|
|
55
|
+
|
|
53
56
|
return _arr;
|
|
54
57
|
}
|
|
55
58
|
|
|
@@ -93,20 +96,21 @@ function _arrayWithoutHoles(arr) {
|
|
|
93
96
|
|
|
94
97
|
function _arrayLikeToArray(arr, len) {
|
|
95
98
|
if (len == null || len > arr.length) len = arr.length;
|
|
99
|
+
|
|
96
100
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
101
|
+
|
|
97
102
|
return arr2;
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
const _require = require("metro-hermes-compiler"),
|
|
101
|
-
getFileLength = _require.getFileLength;
|
|
102
|
-
|
|
103
|
-
// The magic number is used as a header for bytecode.
|
|
106
|
+
getFileLength = _require.getFileLength; // The magic number is used as a header for bytecode.
|
|
104
107
|
// It represents a Metro tunnel in binary.
|
|
105
108
|
//
|
|
106
109
|
// 11111111
|
|
107
110
|
// 11100111
|
|
108
111
|
// 11000011
|
|
109
112
|
// 11000011
|
|
113
|
+
|
|
110
114
|
const MAGIC_NUMBER = 0xffe7c3c3;
|
|
111
115
|
|
|
112
116
|
function getFileHeader(moduleCount) {
|
|
@@ -36,7 +36,9 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
36
36
|
|
|
37
37
|
function _arrayLikeToArray(arr, len) {
|
|
38
38
|
if (len == null || len > arr.length) len = arr.length;
|
|
39
|
+
|
|
39
40
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
41
|
+
|
|
40
42
|
return arr2;
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -47,6 +49,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
47
49
|
var _n = true;
|
|
48
50
|
var _d = false;
|
|
49
51
|
var _e = undefined;
|
|
52
|
+
|
|
50
53
|
try {
|
|
51
54
|
for (
|
|
52
55
|
var _i = arr[Symbol.iterator](), _s;
|
|
@@ -54,6 +57,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
54
57
|
_n = true
|
|
55
58
|
) {
|
|
56
59
|
_arr.push(_s.value);
|
|
60
|
+
|
|
57
61
|
if (i && _arr.length === i) break;
|
|
58
62
|
}
|
|
59
63
|
} catch (err) {
|
|
@@ -66,16 +70,17 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
66
70
|
if (_d) throw _e;
|
|
67
71
|
}
|
|
68
72
|
}
|
|
73
|
+
|
|
69
74
|
return _arr;
|
|
70
75
|
}
|
|
71
76
|
|
|
72
77
|
function _arrayWithHoles(arr) {
|
|
73
78
|
if (Array.isArray(arr)) return arr;
|
|
74
79
|
}
|
|
75
|
-
|
|
76
80
|
/**
|
|
77
81
|
* Serializes a bundle into a plain JS bundle.
|
|
78
82
|
*/
|
|
83
|
+
|
|
79
84
|
function bundleToString(bundle) {
|
|
80
85
|
let code = bundle.pre.length > 0 ? bundle.pre + "\n" : "";
|
|
81
86
|
const modules = [];
|
|
@@ -18,6 +18,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
18
18
|
reject(error);
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
+
|
|
21
22
|
if (info.done) {
|
|
22
23
|
resolve(value);
|
|
23
24
|
} else {
|
|
@@ -31,12 +32,15 @@ function _asyncToGenerator(fn) {
|
|
|
31
32
|
args = arguments;
|
|
32
33
|
return new Promise(function(resolve, reject) {
|
|
33
34
|
var gen = fn.apply(self, args);
|
|
35
|
+
|
|
34
36
|
function _next(value) {
|
|
35
37
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
36
38
|
}
|
|
39
|
+
|
|
37
40
|
function _throw(err) {
|
|
38
41
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
39
42
|
}
|
|
43
|
+
|
|
40
44
|
_next(undefined);
|
|
41
45
|
});
|
|
42
46
|
};
|
|
@@ -45,12 +45,15 @@ function _arrayWithoutHoles(arr) {
|
|
|
45
45
|
|
|
46
46
|
function _arrayLikeToArray(arr, len) {
|
|
47
47
|
if (len == null || len > arr.length) len = arr.length;
|
|
48
|
+
|
|
48
49
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
50
|
+
|
|
49
51
|
return arr2;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
function ownKeys(object, enumerableOnly) {
|
|
53
55
|
var keys = Object.keys(object);
|
|
56
|
+
|
|
54
57
|
if (Object.getOwnPropertySymbols) {
|
|
55
58
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
56
59
|
if (enumerableOnly)
|
|
@@ -59,12 +62,14 @@ function ownKeys(object, enumerableOnly) {
|
|
|
59
62
|
});
|
|
60
63
|
keys.push.apply(keys, symbols);
|
|
61
64
|
}
|
|
65
|
+
|
|
62
66
|
return keys;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
function _objectSpread(target) {
|
|
66
70
|
for (var i = 1; i < arguments.length; i++) {
|
|
67
71
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
72
|
+
|
|
68
73
|
if (i % 2) {
|
|
69
74
|
ownKeys(Object(source), true).forEach(function(key) {
|
|
70
75
|
_defineProperty(target, key, source[key]);
|
|
@@ -81,6 +86,7 @@ function _objectSpread(target) {
|
|
|
81
86
|
});
|
|
82
87
|
}
|
|
83
88
|
}
|
|
89
|
+
|
|
84
90
|
return target;
|
|
85
91
|
}
|
|
86
92
|
|
|
@@ -95,6 +101,7 @@ function _defineProperty(obj, key, value) {
|
|
|
95
101
|
} else {
|
|
96
102
|
obj[key] = value;
|
|
97
103
|
}
|
|
104
|
+
|
|
98
105
|
return obj;
|
|
99
106
|
}
|
|
100
107
|
|
|
@@ -106,6 +113,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
106
113
|
reject(error);
|
|
107
114
|
return;
|
|
108
115
|
}
|
|
116
|
+
|
|
109
117
|
if (info.done) {
|
|
110
118
|
resolve(value);
|
|
111
119
|
} else {
|
|
@@ -119,12 +127,15 @@ function _asyncToGenerator(fn) {
|
|
|
119
127
|
args = arguments;
|
|
120
128
|
return new Promise(function(resolve, reject) {
|
|
121
129
|
var gen = fn.apply(self, args);
|
|
130
|
+
|
|
122
131
|
function _next(value) {
|
|
123
132
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
124
133
|
}
|
|
134
|
+
|
|
125
135
|
function _throw(err) {
|
|
126
136
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
127
137
|
}
|
|
138
|
+
|
|
128
139
|
_next(undefined);
|
|
129
140
|
});
|
|
130
141
|
};
|
package/src/lib/logToConsole.js
CHANGED
|
@@ -60,9 +60,8 @@ module.exports = function(terminal, level) {
|
|
|
60
60
|
_key++
|
|
61
61
|
) {
|
|
62
62
|
data[_key - 2] = arguments[_key];
|
|
63
|
-
}
|
|
63
|
+
} // Remove excess whitespace at the end of a log message, if possible.
|
|
64
64
|
|
|
65
|
-
// Remove excess whitespace at the end of a log message, if possible.
|
|
66
65
|
const lastItem = data[data.length - 1];
|
|
67
66
|
|
|
68
67
|
if (typeof lastItem === "string") {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
function ownKeys(object, enumerableOnly) {
|
|
13
13
|
var keys = Object.keys(object);
|
|
14
|
+
|
|
14
15
|
if (Object.getOwnPropertySymbols) {
|
|
15
16
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
16
17
|
if (enumerableOnly)
|
|
@@ -19,12 +20,14 @@ function ownKeys(object, enumerableOnly) {
|
|
|
19
20
|
});
|
|
20
21
|
keys.push.apply(keys, symbols);
|
|
21
22
|
}
|
|
23
|
+
|
|
22
24
|
return keys;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
function _objectSpread(target) {
|
|
26
28
|
for (var i = 1; i < arguments.length; i++) {
|
|
27
29
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
30
|
+
|
|
28
31
|
if (i % 2) {
|
|
29
32
|
ownKeys(Object(source), true).forEach(function(key) {
|
|
30
33
|
_defineProperty(target, key, source[key]);
|
|
@@ -41,6 +44,7 @@ function _objectSpread(target) {
|
|
|
41
44
|
});
|
|
42
45
|
}
|
|
43
46
|
}
|
|
47
|
+
|
|
44
48
|
return target;
|
|
45
49
|
}
|
|
46
50
|
|
|
@@ -55,6 +59,7 @@ function _defineProperty(obj, key, value) {
|
|
|
55
59
|
} else {
|
|
56
60
|
obj[key] = value;
|
|
57
61
|
}
|
|
62
|
+
|
|
58
63
|
return obj;
|
|
59
64
|
}
|
|
60
65
|
|
package/src/lib/reporting.js
CHANGED
|
@@ -17,13 +17,13 @@ const util = require("util");
|
|
|
17
17
|
|
|
18
18
|
const _require = require("metro-core"),
|
|
19
19
|
Terminal = _require.Terminal;
|
|
20
|
-
|
|
21
20
|
/**
|
|
22
21
|
* A standard way to log a warning to the terminal. This should not be called
|
|
23
22
|
* from some arbitrary Metro logic, only from the reporters. Instead of
|
|
24
23
|
* calling this, add a new type of ReportableEvent instead, and implement a
|
|
25
24
|
* proper handler in the reporter(s).
|
|
26
25
|
*/
|
|
26
|
+
|
|
27
27
|
function logWarning(terminal, format) {
|
|
28
28
|
for (
|
|
29
29
|
var _len = arguments.length,
|
|
@@ -11,10 +11,14 @@
|
|
|
11
11
|
|
|
12
12
|
function _objectWithoutProperties(source, excluded) {
|
|
13
13
|
if (source == null) return {};
|
|
14
|
+
|
|
14
15
|
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
16
|
+
|
|
15
17
|
var key, i;
|
|
18
|
+
|
|
16
19
|
if (Object.getOwnPropertySymbols) {
|
|
17
20
|
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
21
|
+
|
|
18
22
|
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
19
23
|
key = sourceSymbolKeys[i];
|
|
20
24
|
if (excluded.indexOf(key) >= 0) continue;
|
|
@@ -22,6 +26,7 @@ function _objectWithoutProperties(source, excluded) {
|
|
|
22
26
|
target[key] = source[key];
|
|
23
27
|
}
|
|
24
28
|
}
|
|
29
|
+
|
|
25
30
|
return target;
|
|
26
31
|
}
|
|
27
32
|
|
|
@@ -30,16 +35,19 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
30
35
|
var target = {};
|
|
31
36
|
var sourceKeys = Object.keys(source);
|
|
32
37
|
var key, i;
|
|
38
|
+
|
|
33
39
|
for (i = 0; i < sourceKeys.length; i++) {
|
|
34
40
|
key = sourceKeys[i];
|
|
35
41
|
if (excluded.indexOf(key) >= 0) continue;
|
|
36
42
|
target[key] = source[key];
|
|
37
43
|
}
|
|
44
|
+
|
|
38
45
|
return target;
|
|
39
46
|
}
|
|
40
47
|
|
|
41
48
|
function ownKeys(object, enumerableOnly) {
|
|
42
49
|
var keys = Object.keys(object);
|
|
50
|
+
|
|
43
51
|
if (Object.getOwnPropertySymbols) {
|
|
44
52
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
45
53
|
if (enumerableOnly)
|
|
@@ -48,12 +56,14 @@ function ownKeys(object, enumerableOnly) {
|
|
|
48
56
|
});
|
|
49
57
|
keys.push.apply(keys, symbols);
|
|
50
58
|
}
|
|
59
|
+
|
|
51
60
|
return keys;
|
|
52
61
|
}
|
|
53
62
|
|
|
54
63
|
function _objectSpread(target) {
|
|
55
64
|
for (var i = 1; i < arguments.length; i++) {
|
|
56
65
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
66
|
+
|
|
57
67
|
if (i % 2) {
|
|
58
68
|
ownKeys(Object(source), true).forEach(function(key) {
|
|
59
69
|
_defineProperty(target, key, source[key]);
|
|
@@ -70,6 +80,7 @@ function _objectSpread(target) {
|
|
|
70
80
|
});
|
|
71
81
|
}
|
|
72
82
|
}
|
|
83
|
+
|
|
73
84
|
return target;
|
|
74
85
|
}
|
|
75
86
|
|
|
@@ -84,6 +95,7 @@ function _defineProperty(obj, key, value) {
|
|
|
84
95
|
} else {
|
|
85
96
|
obj[key] = value;
|
|
86
97
|
}
|
|
98
|
+
|
|
87
99
|
return obj;
|
|
88
100
|
}
|
|
89
101
|
|
|
@@ -95,6 +107,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
95
107
|
reject(error);
|
|
96
108
|
return;
|
|
97
109
|
}
|
|
110
|
+
|
|
98
111
|
if (info.done) {
|
|
99
112
|
resolve(value);
|
|
100
113
|
} else {
|
|
@@ -108,12 +121,15 @@ function _asyncToGenerator(fn) {
|
|
|
108
121
|
args = arguments;
|
|
109
122
|
return new Promise(function(resolve, reject) {
|
|
110
123
|
var gen = fn.apply(self, args);
|
|
124
|
+
|
|
111
125
|
function _next(value) {
|
|
112
126
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
113
127
|
}
|
|
128
|
+
|
|
114
129
|
function _throw(err) {
|
|
115
130
|
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
116
131
|
}
|
|
132
|
+
|
|
117
133
|
_next(undefined);
|
|
118
134
|
});
|
|
119
135
|
};
|
|
@@ -217,9 +233,9 @@ function _calcTransformerOptions() {
|
|
|
217
233
|
return _calcTransformerOptions.apply(this, arguments);
|
|
218
234
|
}
|
|
219
235
|
|
|
220
|
-
function
|
|
236
|
+
function removeInlineRequiresBlockListFromOptions(path, inlineRequires) {
|
|
221
237
|
if (typeof inlineRequires === "object") {
|
|
222
|
-
return !(path in inlineRequires.
|
|
238
|
+
return !(path in inlineRequires.blockList);
|
|
223
239
|
}
|
|
224
240
|
|
|
225
241
|
return inlineRequires;
|
|
@@ -262,7 +278,7 @@ function _getTransformFn() {
|
|
|
262
278
|
path,
|
|
263
279
|
config.resolver.assetExts
|
|
264
280
|
),
|
|
265
|
-
inlineRequires:
|
|
281
|
+
inlineRequires: removeInlineRequiresBlockListFromOptions(
|
|
266
282
|
path,
|
|
267
283
|
inlineRequires
|
|
268
284
|
)
|
|
@@ -18,7 +18,7 @@ import type DeltaBundler, {TransformFn} from '../DeltaBundler';
|
|
|
18
18
|
import type {ConfigT} from 'metro-config/src/configTypes.flow';
|
|
19
19
|
import type {Type} from 'metro-transform-worker';
|
|
20
20
|
|
|
21
|
-
type InlineRequiresRaw = {+
|
|
21
|
+
type InlineRequiresRaw = {+blockList: {[string]: true, ...}, ...} | boolean;
|
|
22
22
|
|
|
23
23
|
export type TransformInputOptions = $Diff<
|
|
24
24
|
TransformOptions,
|
|
@@ -99,12 +99,12 @@ async function calcTransformerOptions(
|
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
function
|
|
102
|
+
function removeInlineRequiresBlockListFromOptions(
|
|
103
103
|
path: string,
|
|
104
104
|
inlineRequires: InlineRequiresRaw,
|
|
105
105
|
): boolean {
|
|
106
106
|
if (typeof inlineRequires === 'object') {
|
|
107
|
-
return !(path in inlineRequires.
|
|
107
|
+
return !(path in inlineRequires.blockList);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
return inlineRequires;
|
|
@@ -129,7 +129,7 @@ async function getTransformFn(
|
|
|
129
129
|
return await bundler.transformFile(path, {
|
|
130
130
|
...transformOptions,
|
|
131
131
|
type: getType(transformOptions.type, path, config.resolver.assetExts),
|
|
132
|
-
inlineRequires:
|
|
132
|
+
inlineRequires: removeInlineRequiresBlockListFromOptions(
|
|
133
133
|
path,
|
|
134
134
|
inlineRequires,
|
|
135
135
|
),
|
|
@@ -45,12 +45,15 @@ function _arrayWithoutHoles(arr) {
|
|
|
45
45
|
|
|
46
46
|
function _arrayLikeToArray(arr, len) {
|
|
47
47
|
if (len == null || len > arr.length) len = arr.length;
|
|
48
|
+
|
|
48
49
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
50
|
+
|
|
49
51
|
return arr2;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
function ownKeys(object, enumerableOnly) {
|
|
53
55
|
var keys = Object.keys(object);
|
|
56
|
+
|
|
54
57
|
if (Object.getOwnPropertySymbols) {
|
|
55
58
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
56
59
|
if (enumerableOnly)
|
|
@@ -59,12 +62,14 @@ function ownKeys(object, enumerableOnly) {
|
|
|
59
62
|
});
|
|
60
63
|
keys.push.apply(keys, symbols);
|
|
61
64
|
}
|
|
65
|
+
|
|
62
66
|
return keys;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
function _objectSpread(target) {
|
|
66
70
|
for (var i = 1; i < arguments.length; i++) {
|
|
67
71
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
72
|
+
|
|
68
73
|
if (i % 2) {
|
|
69
74
|
ownKeys(Object(source), true).forEach(function(key) {
|
|
70
75
|
_defineProperty(target, key, source[key]);
|
|
@@ -81,6 +86,7 @@ function _objectSpread(target) {
|
|
|
81
86
|
});
|
|
82
87
|
}
|
|
83
88
|
}
|
|
89
|
+
|
|
84
90
|
return target;
|
|
85
91
|
}
|
|
86
92
|
|
|
@@ -95,6 +101,7 @@ function _defineProperty(obj, key, value) {
|
|
|
95
101
|
} else {
|
|
96
102
|
obj[key] = value;
|
|
97
103
|
}
|
|
104
|
+
|
|
98
105
|
return obj;
|
|
99
106
|
}
|
|
100
107
|
|
|
@@ -145,6 +152,7 @@ class ModuleResolver {
|
|
|
145
152
|
); // Since the redirected path is still relative to the package root,
|
|
146
153
|
// we have to transform it back to be module-relative (as it
|
|
147
154
|
// originally was)
|
|
155
|
+
// $FlowFixMe[incompatible-type]
|
|
148
156
|
|
|
149
157
|
if (redirectedPath !== false) {
|
|
150
158
|
redirectedPath =
|
|
@@ -229,7 +237,7 @@ class ModuleResolver {
|
|
|
229
237
|
[`${moduleName} could not be found within the project${hint || "."}`]
|
|
230
238
|
.concat(
|
|
231
239
|
_toConsumableArray(
|
|
232
|
-
displayDirPaths.map(dirPath => ` ${
|
|
240
|
+
displayDirPaths.map(dirPath => ` ${dirPath}`)
|
|
233
241
|
),
|
|
234
242
|
[
|
|
235
243
|
"\nIf you are sure the module exists, try these steps:",
|
|
@@ -246,11 +254,11 @@ class ModuleResolver {
|
|
|
246
254
|
throw error;
|
|
247
255
|
}
|
|
248
256
|
}
|
|
249
|
-
|
|
250
257
|
/**
|
|
251
258
|
* FIXME: get rid of this function and of the reliance on `TModule`
|
|
252
259
|
* altogether, return strongly typed resolutions at the top-level instead.
|
|
253
260
|
*/
|
|
261
|
+
|
|
254
262
|
_getFileResolvedModule(resolution) {
|
|
255
263
|
switch (resolution.type) {
|
|
256
264
|
case "sourceFile":
|
|
@@ -80,9 +80,10 @@ type Options<TModule, TPackage> = {|
|
|
|
80
80
|
+isAssetFile: IsAssetFile,
|
|
81
81
|
+mainFields: $ReadOnlyArray<string>,
|
|
82
82
|
+moduleCache: ModuleishCache<TModule, TPackage>,
|
|
83
|
-
+projectRoot: string,
|
|
84
|
-
+preferNativePlatform: boolean,
|
|
85
83
|
+moduleMap: ModuleMap,
|
|
84
|
+
+nodeModulesPaths: $ReadOnlyArray<string>,
|
|
85
|
+
+preferNativePlatform: boolean,
|
|
86
|
+
+projectRoot: string,
|
|
86
87
|
+resolveAsset: ResolveAsset,
|
|
87
88
|
+resolveRequest: ?CustomResolver,
|
|
88
89
|
+sourceExts: $ReadOnlyArray<string>,
|
|
@@ -122,6 +123,7 @@ class ModuleResolver<TModule: Moduleish, TPackage: Packageish> {
|
|
|
122
123
|
// Since the redirected path is still relative to the package root,
|
|
123
124
|
// we have to transform it back to be module-relative (as it
|
|
124
125
|
// originally was)
|
|
126
|
+
// $FlowFixMe[incompatible-type]
|
|
125
127
|
if (redirectedPath !== false) {
|
|
126
128
|
redirectedPath =
|
|
127
129
|
'./' +
|
|
@@ -208,14 +210,13 @@ class ModuleResolver<TModule: Moduleish, TPackage: Packageish> {
|
|
|
208
210
|
.concat(extraPaths);
|
|
209
211
|
|
|
210
212
|
const hint = displayDirPaths.length ? ' or in these directories:' : '';
|
|
213
|
+
|
|
211
214
|
throw new UnableToResolveError(
|
|
212
215
|
fromModule.path,
|
|
213
216
|
moduleName,
|
|
214
217
|
[
|
|
215
218
|
`${moduleName} could not be found within the project${hint || '.'}`,
|
|
216
|
-
...displayDirPaths.map(
|
|
217
|
-
(dirPath: string) => ` ${path.dirname(dirPath)}`,
|
|
218
|
-
),
|
|
219
|
+
...displayDirPaths.map((dirPath: string) => ` ${dirPath}`),
|
|
219
220
|
'\nIf you are sure the module exists, try these steps:',
|
|
220
221
|
' 1. Clear watchman watches: watchman watch-del-all',
|
|
221
222
|
' 2. Delete node_modules and run yarn install',
|