metro 0.82.4 → 0.83.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 +18 -21
- package/src/DeltaBundler/DeltaCalculator.js +5 -1
- package/src/DeltaBundler/Graph.js +37 -10
- package/src/DeltaBundler/Graph.js.flow +49 -22
- package/src/DeltaBundler/Serializers/getRamBundleInfo.js.flow +1 -0
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +4 -1
- package/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js.flow +5 -1
- package/src/DeltaBundler/Serializers/helpers/js.js +4 -0
- package/src/DeltaBundler/Serializers/helpers/js.js.flow +6 -0
- package/src/DeltaBundler/Transformer.js +5 -2
- package/src/DeltaBundler/Transformer.js.flow +3 -2
- package/src/DeltaBundler/Worker.d.ts +7 -9
- package/src/DeltaBundler/Worker.flow.js.flow +2 -2
- package/src/DeltaBundler/WorkerFarm.js +2 -2
- package/src/DeltaBundler/WorkerFarm.js.flow +2 -6
- package/src/DeltaBundler/buildSubgraph.js +21 -15
- package/src/DeltaBundler/buildSubgraph.js.flow +21 -21
- package/src/DeltaBundler/getTransformCacheKey.js +1 -1
- package/src/DeltaBundler/getTransformCacheKey.js.flow +1 -1
- package/src/DeltaBundler/types.flow.js +5 -1
- package/src/DeltaBundler/types.flow.js.flow +7 -1
- package/src/ModuleGraph/worker/JsFileWrapping.js +39 -9
- package/src/ModuleGraph/worker/JsFileWrapping.js.flow +32 -5
- package/src/ModuleGraph/worker/collectDependencies.js.flow +7 -1
- package/src/Server/symbolicate.js +4 -2
- package/src/Server/symbolicate.js.flow +4 -2
- package/src/Server.d.ts +6 -1
- package/src/Server.js +51 -14
- package/src/Server.js.flow +75 -21
- package/src/commands/build.js +5 -1
- package/src/commands/serve.js +4 -1
- package/src/commands/serve.js.flow +4 -1
- package/src/index.d.ts +13 -7
- package/src/index.flow.js +9 -3
- package/src/index.flow.js.flow +69 -63
- package/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js +5 -1
- package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js +5 -1
- package/src/integration_tests/basic_bundle/import-export/index.js +11 -3
- package/src/integration_tests/basic_bundle/optional-dependencies/index.js +20 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/index.js.flow +34 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/optional-b.js +3 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/optional-b.js.flow +11 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/optional-c.js +3 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/optional-c.js.flow +11 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/required-a.js +3 -0
- package/src/integration_tests/basic_bundle/optional-dependencies/required-a.js.flow +11 -0
- package/src/lib/RamBundleParser.js.flow +1 -0
- package/src/lib/contextModule.js +5 -1
- package/src/lib/contextModuleTemplates.js +6 -2
- package/src/lib/createWebsocketServer.js +5 -1
- package/src/lib/createWebsocketServer.js.flow +1 -0
- package/src/lib/formatBundlingError.js.flow +1 -1
- package/src/lib/getAppendScripts.js +5 -1
- package/src/lib/getGraphId.js +1 -1
- package/src/lib/getGraphId.js.flow +1 -1
- package/src/lib/getPrependedScripts.js +6 -2
- package/src/lib/getPrependedScripts.js.flow +2 -2
- package/src/lib/isResolvedDependency.js +9 -0
- package/src/lib/isResolvedDependency.js.flow +18 -0
- package/src/lib/transformHelpers.js +6 -6
- package/src/lib/transformHelpers.js.flow +1 -5
- package/src/node-haste/DependencyGraph/ModuleResolution.js +2 -1
- package/src/node-haste/DependencyGraph/ModuleResolution.js.flow +6 -2
- package/src/node-haste/DependencyGraph/createFileMap.js +6 -2
- package/src/node-haste/DependencyGraph.js +1 -1
- package/src/node-haste/DependencyGraph.js.flow +5 -4
- package/src/node-haste/Module.js +5 -1
- package/src/node-haste/Package.js.flow +1 -1
- package/src/shared/output/RamBundle/util.js +5 -1
- package/src/shared/output/RamBundle/util.js.flow +3 -1
- package/src/shared/output/RamBundle.js.flow +2 -0
- package/src/shared/output/bundle.d.ts +5 -1
- package/src/shared/output/bundle.flow.js +8 -5
- package/src/shared/output/bundle.flow.js.flow +11 -5
- package/src/shared/types.d.ts +4 -0
- package/src/shared/types.flow.js.flow +12 -8
package/src/index.d.ts
CHANGED
|
@@ -14,9 +14,10 @@ export * from './ModuleGraph/worker/collectDependencies';
|
|
|
14
14
|
export * from './Server';
|
|
15
15
|
export * from './lib/reporting';
|
|
16
16
|
|
|
17
|
+
import type {AssetData} from './Asset';
|
|
17
18
|
import type {ReadOnlyGraph} from './DeltaBundler/types';
|
|
18
19
|
import type {ServerOptions, default as MetroServer} from './Server';
|
|
19
|
-
import type {OutputOptions, RequestOptions} from './shared/types';
|
|
20
|
+
import type {BuildOptions, OutputOptions, RequestOptions} from './shared/types';
|
|
20
21
|
import type {HandleFunction} from 'connect';
|
|
21
22
|
import type {EventEmitter} from 'events';
|
|
22
23
|
import type {IncomingMessage, Server as HttpServer} from 'http';
|
|
@@ -29,8 +30,7 @@ import type {
|
|
|
29
30
|
Middleware,
|
|
30
31
|
} from 'metro-config';
|
|
31
32
|
import type {Duplex} from 'stream';
|
|
32
|
-
|
|
33
|
-
import Yargs = require('yargs');
|
|
33
|
+
import type Yargs from 'yargs';
|
|
34
34
|
|
|
35
35
|
export {loadConfig, mergeConfig, resolveConfig} from 'metro-config';
|
|
36
36
|
export {Terminal} from 'metro-core';
|
|
@@ -82,6 +82,10 @@ export interface RunServerOptions {
|
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
export interface RunServerResult {
|
|
86
|
+
httpServer: HttpServer | HttpsServer;
|
|
87
|
+
}
|
|
88
|
+
|
|
85
89
|
export interface RunBuildOptions {
|
|
86
90
|
entry: string;
|
|
87
91
|
dev?: boolean;
|
|
@@ -93,10 +97,12 @@ export interface RunBuildOptions {
|
|
|
93
97
|
output?: {
|
|
94
98
|
build: (
|
|
95
99
|
server: MetroServer,
|
|
96
|
-
|
|
100
|
+
requestOptions: RequestOptions,
|
|
101
|
+
buildOptions?: BuildOptions,
|
|
97
102
|
) => Promise<{
|
|
98
103
|
code: string;
|
|
99
104
|
map: string;
|
|
105
|
+
assets?: ReadonlyArray<AssetData>;
|
|
100
106
|
}>;
|
|
101
107
|
save: (
|
|
102
108
|
entry: {
|
|
@@ -137,7 +143,7 @@ export function createConnectMiddleware(
|
|
|
137
143
|
export function runServer(
|
|
138
144
|
config: ConfigT,
|
|
139
145
|
options: RunServerOptions,
|
|
140
|
-
): Promise<
|
|
146
|
+
): Promise<RunServerResult>;
|
|
141
147
|
|
|
142
148
|
export function runBuild(
|
|
143
149
|
config: ConfigT,
|
|
@@ -159,6 +165,6 @@ interface AttachMetroCLIOptions {
|
|
|
159
165
|
}
|
|
160
166
|
|
|
161
167
|
export function attachMetroCli(
|
|
162
|
-
yargs:
|
|
168
|
+
yargs: Yargs.Argv,
|
|
163
169
|
options?: AttachMetroCLIOptions,
|
|
164
|
-
):
|
|
170
|
+
): Yargs.Argv;
|
package/src/index.flow.js
CHANGED
|
@@ -6,6 +6,7 @@ const makeServeCommand = require("./commands/serve");
|
|
|
6
6
|
const MetroHmrServer = require("./HmrServer");
|
|
7
7
|
const IncrementalBundler = require("./IncrementalBundler");
|
|
8
8
|
const createWebsocketServer = require("./lib/createWebsocketServer");
|
|
9
|
+
const JsonReporter = require("./lib/JsonReporter");
|
|
9
10
|
const TerminalReporter = require("./lib/TerminalReporter");
|
|
10
11
|
const MetroServer = require("./Server");
|
|
11
12
|
const outputBundle = require("./shared/output/bundle");
|
|
@@ -24,6 +25,7 @@ const net = require("net");
|
|
|
24
25
|
const nullthrows = require("nullthrows");
|
|
25
26
|
const { parse } = require("url");
|
|
26
27
|
exports.Terminal = Terminal;
|
|
28
|
+
exports.JsonReporter = JsonReporter;
|
|
27
29
|
exports.TerminalReporter = TerminalReporter;
|
|
28
30
|
async function getConfig(config) {
|
|
29
31
|
const defaultConfig = await getDefaultConfig(config.projectRoot);
|
|
@@ -204,7 +206,9 @@ exports.runServer = async (
|
|
|
204
206
|
if (onReady) {
|
|
205
207
|
onReady(httpServer);
|
|
206
208
|
}
|
|
207
|
-
resolve(
|
|
209
|
+
resolve({
|
|
210
|
+
httpServer,
|
|
211
|
+
});
|
|
208
212
|
});
|
|
209
213
|
httpServer.timeout = 0;
|
|
210
214
|
httpServer.on("close", () => {
|
|
@@ -256,11 +260,13 @@ exports.runBuild = async (
|
|
|
256
260
|
if (onBegin) {
|
|
257
261
|
onBegin();
|
|
258
262
|
}
|
|
259
|
-
const metroBundle = await output.build(metroServer, requestOptions
|
|
263
|
+
const metroBundle = await output.build(metroServer, requestOptions, {
|
|
264
|
+
withAssets: assets,
|
|
265
|
+
});
|
|
260
266
|
const result = {
|
|
261
267
|
...metroBundle,
|
|
262
268
|
};
|
|
263
|
-
if (assets) {
|
|
269
|
+
if (assets && result.assets == null) {
|
|
264
270
|
result.assets = await metroServer.getAssets({
|
|
265
271
|
...MetroServer.DEFAULT_BUNDLE_OPTIONS,
|
|
266
272
|
...requestOptions,
|
package/src/index.flow.js.flow
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import type {AssetData} from './Assets';
|
|
15
15
|
import type {ReadOnlyGraph} from './DeltaBundler';
|
|
16
16
|
import type {ServerOptions} from './Server';
|
|
17
|
+
import type {BuildOptions} from './shared/types.flow';
|
|
17
18
|
import type {OutputOptions, RequestOptions} from './shared/types.flow.js';
|
|
18
19
|
import type {HandleFunction} from 'connect';
|
|
19
20
|
import type {Server as HttpServer} from 'http';
|
|
@@ -35,6 +36,7 @@ const makeServeCommand = require('./commands/serve');
|
|
|
35
36
|
const MetroHmrServer = require('./HmrServer');
|
|
36
37
|
const IncrementalBundler = require('./IncrementalBundler');
|
|
37
38
|
const createWebsocketServer = require('./lib/createWebsocketServer');
|
|
39
|
+
const JsonReporter = require('./lib/JsonReporter');
|
|
38
40
|
const TerminalReporter = require('./lib/TerminalReporter');
|
|
39
41
|
const MetroServer = require('./Server');
|
|
40
42
|
const outputBundle = require('./shared/output/bundle');
|
|
@@ -83,6 +85,10 @@ export type RunServerOptions = $ReadOnly<{
|
|
|
83
85
|
}>,
|
|
84
86
|
}>;
|
|
85
87
|
|
|
88
|
+
export type RunServerResult = {
|
|
89
|
+
httpServer: HttpServer | HttpsServer,
|
|
90
|
+
};
|
|
91
|
+
|
|
86
92
|
type BuildGraphOptions = {
|
|
87
93
|
entries: $ReadOnlyArray<string>,
|
|
88
94
|
customTransformOptions?: CustomTransformOptions,
|
|
@@ -108,9 +114,11 @@ export type RunBuildOptions = {
|
|
|
108
114
|
build: (
|
|
109
115
|
MetroServer,
|
|
110
116
|
RequestOptions,
|
|
117
|
+
void | BuildOptions,
|
|
111
118
|
) => Promise<{
|
|
112
119
|
code: string,
|
|
113
120
|
map: string,
|
|
121
|
+
assets?: $ReadOnlyArray<AssetData>,
|
|
114
122
|
...
|
|
115
123
|
}>,
|
|
116
124
|
save: (
|
|
@@ -143,6 +151,7 @@ type BuildCommandOptions = {} | null;
|
|
|
143
151
|
type ServeCommandOptions = {} | null;
|
|
144
152
|
|
|
145
153
|
exports.Terminal = Terminal;
|
|
154
|
+
exports.JsonReporter = JsonReporter;
|
|
146
155
|
exports.TerminalReporter = TerminalReporter;
|
|
147
156
|
|
|
148
157
|
export type {AssetData} from './Assets';
|
|
@@ -265,7 +274,7 @@ exports.runServer = async (
|
|
|
265
274
|
websocketEndpoints = {},
|
|
266
275
|
watch,
|
|
267
276
|
}: RunServerOptions = {},
|
|
268
|
-
): Promise<
|
|
277
|
+
): Promise<RunServerResult> => {
|
|
269
278
|
await earlyPortCheck(host, config.server.port);
|
|
270
279
|
|
|
271
280
|
if (secure != null || secureCert != null || secureKey != null) {
|
|
@@ -314,73 +323,68 @@ exports.runServer = async (
|
|
|
314
323
|
} else {
|
|
315
324
|
httpServer = http.createServer(serverApp);
|
|
316
325
|
}
|
|
317
|
-
return new Promise(
|
|
318
|
-
(
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
httpServer.on('error', error => {
|
|
323
|
-
endMiddleware().finally(() => {
|
|
324
|
-
onError?.(error);
|
|
325
|
-
reject(error);
|
|
326
|
-
});
|
|
326
|
+
return new Promise((resolve, reject) => {
|
|
327
|
+
httpServer.on('error', error => {
|
|
328
|
+
endMiddleware().finally(() => {
|
|
329
|
+
onError?.(error);
|
|
330
|
+
reject(error);
|
|
327
331
|
});
|
|
332
|
+
});
|
|
328
333
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
websocketEndpoints = {
|
|
339
|
-
...websocketEndpoints,
|
|
340
|
-
'/hot': createWebsocketServer({
|
|
341
|
-
websocketServer: new MetroHmrServer(
|
|
342
|
-
metroServer.getBundler(),
|
|
343
|
-
metroServer.getCreateModuleId(),
|
|
344
|
-
config,
|
|
345
|
-
),
|
|
346
|
-
}),
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
httpServer.on('upgrade', (request, socket, head) => {
|
|
350
|
-
const {pathname} = parse(request.url);
|
|
351
|
-
if (pathname != null && websocketEndpoints[pathname]) {
|
|
352
|
-
websocketEndpoints[pathname].handleUpgrade(
|
|
353
|
-
request,
|
|
354
|
-
socket,
|
|
355
|
-
head,
|
|
356
|
-
ws => {
|
|
357
|
-
websocketEndpoints[pathname].emit('connection', ws, request);
|
|
358
|
-
},
|
|
359
|
-
);
|
|
360
|
-
} else {
|
|
361
|
-
socket.destroy();
|
|
362
|
-
}
|
|
363
|
-
});
|
|
364
|
-
|
|
365
|
-
if (onReady) {
|
|
366
|
-
onReady(httpServer);
|
|
367
|
-
}
|
|
334
|
+
httpServer.listen(config.server.port, host, () => {
|
|
335
|
+
const {address, port, family} = httpServer.address();
|
|
336
|
+
config.reporter.update({
|
|
337
|
+
type: 'server_listening',
|
|
338
|
+
address,
|
|
339
|
+
port, // Assigned port if configured with port 0
|
|
340
|
+
family,
|
|
341
|
+
});
|
|
368
342
|
|
|
369
|
-
|
|
343
|
+
websocketEndpoints = {
|
|
344
|
+
...websocketEndpoints,
|
|
345
|
+
'/hot': createWebsocketServer({
|
|
346
|
+
websocketServer: new MetroHmrServer(
|
|
347
|
+
metroServer.getBundler(),
|
|
348
|
+
metroServer.getCreateModuleId(),
|
|
349
|
+
config,
|
|
350
|
+
),
|
|
351
|
+
}),
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
httpServer.on('upgrade', (request, socket, head) => {
|
|
355
|
+
const {pathname} = parse(request.url);
|
|
356
|
+
if (pathname != null && websocketEndpoints[pathname]) {
|
|
357
|
+
websocketEndpoints[pathname].handleUpgrade(
|
|
358
|
+
request,
|
|
359
|
+
socket,
|
|
360
|
+
head,
|
|
361
|
+
ws => {
|
|
362
|
+
websocketEndpoints[pathname].emit('connection', ws, request);
|
|
363
|
+
},
|
|
364
|
+
);
|
|
365
|
+
} else {
|
|
366
|
+
socket.destroy();
|
|
367
|
+
}
|
|
370
368
|
});
|
|
371
369
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
370
|
+
if (onReady) {
|
|
371
|
+
onReady(httpServer);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
resolve({httpServer});
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
// Disable any kind of automatic timeout behavior for incoming
|
|
378
|
+
// requests in case it takes the packager more than the default
|
|
379
|
+
// timeout of 120 seconds to respond to a request.
|
|
380
|
+
httpServer.timeout = 0;
|
|
376
381
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
});
|
|
382
|
+
httpServer.on('close', () => {
|
|
383
|
+
endMiddleware()?.finally(() => {
|
|
384
|
+
onClose?.();
|
|
381
385
|
});
|
|
382
|
-
}
|
|
383
|
-
);
|
|
386
|
+
});
|
|
387
|
+
});
|
|
384
388
|
};
|
|
385
389
|
|
|
386
390
|
exports.runBuild = async (
|
|
@@ -428,10 +432,12 @@ exports.runBuild = async (
|
|
|
428
432
|
onBegin();
|
|
429
433
|
}
|
|
430
434
|
|
|
431
|
-
const metroBundle = await output.build(metroServer, requestOptions
|
|
435
|
+
const metroBundle = await output.build(metroServer, requestOptions, {
|
|
436
|
+
withAssets: assets,
|
|
437
|
+
});
|
|
432
438
|
const result: RunBuildResult = {...metroBundle};
|
|
433
439
|
|
|
434
|
-
if (assets) {
|
|
440
|
+
if (assets && result.assets == null) {
|
|
435
441
|
result.assets = await metroServer.getAssets({
|
|
436
442
|
...MetroServer.DEFAULT_BUNDLE_OPTIONS,
|
|
437
443
|
...requestOptions,
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _doesNotExist = _interopRequireDefault(require("./does-not-exist"));
|
|
4
4
|
function _interopRequireDefault(e) {
|
|
5
|
-
return e && e.__esModule
|
|
5
|
+
return e && e.__esModule
|
|
6
|
+
? e
|
|
7
|
+
: {
|
|
8
|
+
default: e,
|
|
9
|
+
};
|
|
6
10
|
}
|
|
7
11
|
global.x = _doesNotExist.default;
|
package/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _doesNotExist = _interopRequireDefault(require("./does-not-exist"));
|
|
4
4
|
function _interopRequireDefault(e) {
|
|
5
|
-
return e && e.__esModule
|
|
5
|
+
return e && e.__esModule
|
|
6
|
+
? e
|
|
7
|
+
: {
|
|
8
|
+
default: e,
|
|
9
|
+
};
|
|
6
10
|
}
|
|
7
11
|
global.x = _doesNotExist.default;
|
|
@@ -30,7 +30,11 @@ var _exportPrimitiveDefault = _interopRequireWildcard(
|
|
|
30
30
|
var _export3 = _interopRequireDefault(require("./export-3"));
|
|
31
31
|
var _export4 = require("./export-4");
|
|
32
32
|
function _interopRequireDefault(e) {
|
|
33
|
-
return e && e.__esModule
|
|
33
|
+
return e && e.__esModule
|
|
34
|
+
? e
|
|
35
|
+
: {
|
|
36
|
+
default: e,
|
|
37
|
+
};
|
|
34
38
|
}
|
|
35
39
|
function _getRequireWildcardCache(e) {
|
|
36
40
|
if ("function" != typeof WeakMap) return null;
|
|
@@ -43,10 +47,14 @@ function _getRequireWildcardCache(e) {
|
|
|
43
47
|
function _interopRequireWildcard(e, r) {
|
|
44
48
|
if (!r && e && e.__esModule) return e;
|
|
45
49
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
46
|
-
return {
|
|
50
|
+
return {
|
|
51
|
+
default: e,
|
|
52
|
+
};
|
|
47
53
|
var t = _getRequireWildcardCache(r);
|
|
48
54
|
if (t && t.has(e)) return t.get(e);
|
|
49
|
-
var n = {
|
|
55
|
+
var n = {
|
|
56
|
+
__proto__: null,
|
|
57
|
+
},
|
|
50
58
|
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
51
59
|
for (var u in e)
|
|
52
60
|
if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.c = exports.b = exports.a = void 0;
|
|
7
|
+
let shouldBeB, shouldBeC;
|
|
8
|
+
try {
|
|
9
|
+
shouldBeB = require("./not-exists");
|
|
10
|
+
} catch {
|
|
11
|
+
shouldBeB = require("./optional-b");
|
|
12
|
+
}
|
|
13
|
+
(function requireOptionalC() {
|
|
14
|
+
try {
|
|
15
|
+
shouldBeC = require("./optional-c");
|
|
16
|
+
} catch (e) {}
|
|
17
|
+
})();
|
|
18
|
+
const a = (exports.a = require("./required-a"));
|
|
19
|
+
const b = (exports.b = shouldBeB);
|
|
20
|
+
const c = (exports.c = shouldBeC);
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
* @flow strict
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
let shouldBeB: mixed, shouldBeC: mixed;
|
|
14
|
+
try {
|
|
15
|
+
// $FlowExpectedError[cannot-resolve-module]
|
|
16
|
+
shouldBeB = require('./not-exists');
|
|
17
|
+
} catch {
|
|
18
|
+
shouldBeB = require('./optional-b');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
(function requireOptionalC() {
|
|
22
|
+
// This function is here to ensure that the `a` module is always required,
|
|
23
|
+
// even if it is not used in the code.
|
|
24
|
+
try {
|
|
25
|
+
shouldBeC = require('./optional-c');
|
|
26
|
+
} catch (e) {
|
|
27
|
+
// If the optional module is not found, we can ignore the error.
|
|
28
|
+
// This is to simulate an optional dependency that may or may not exist.
|
|
29
|
+
}
|
|
30
|
+
})();
|
|
31
|
+
|
|
32
|
+
export const a = require('./required-a');
|
|
33
|
+
export const b = shouldBeB;
|
|
34
|
+
export const c = shouldBeC;
|
package/src/lib/contextModule.js
CHANGED
|
@@ -9,7 +9,11 @@ var _crypto = _interopRequireDefault(require("crypto"));
|
|
|
9
9
|
var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
|
10
10
|
var _path = _interopRequireDefault(require("path"));
|
|
11
11
|
function _interopRequireDefault(e) {
|
|
12
|
-
return e && e.__esModule
|
|
12
|
+
return e && e.__esModule
|
|
13
|
+
? e
|
|
14
|
+
: {
|
|
15
|
+
default: e,
|
|
16
|
+
};
|
|
13
17
|
}
|
|
14
18
|
function toHash(value) {
|
|
15
19
|
return _crypto.default.createHash("sha1").update(value).digest("hex");
|
|
@@ -17,10 +17,14 @@ function _getRequireWildcardCache(e) {
|
|
|
17
17
|
function _interopRequireWildcard(e, r) {
|
|
18
18
|
if (!r && e && e.__esModule) return e;
|
|
19
19
|
if (null === e || ("object" != typeof e && "function" != typeof e))
|
|
20
|
-
return {
|
|
20
|
+
return {
|
|
21
|
+
default: e,
|
|
22
|
+
};
|
|
21
23
|
var t = _getRequireWildcardCache(r);
|
|
22
24
|
if (t && t.has(e)) return t.get(e);
|
|
23
|
-
var n = {
|
|
25
|
+
var n = {
|
|
26
|
+
__proto__: null,
|
|
27
|
+
},
|
|
24
28
|
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
25
29
|
for (var u in e)
|
|
26
30
|
if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var _ws = _interopRequireDefault(require("ws"));
|
|
4
4
|
function _interopRequireDefault(e) {
|
|
5
|
-
return e && e.__esModule
|
|
5
|
+
return e && e.__esModule
|
|
6
|
+
? e
|
|
7
|
+
: {
|
|
8
|
+
default: e,
|
|
9
|
+
};
|
|
6
10
|
}
|
|
7
11
|
module.exports = function createWebsocketServer({ websocketServer }) {
|
|
8
12
|
const wss = new _ws.default.Server({
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var _CountingSet = _interopRequireDefault(require("./CountingSet"));
|
|
4
4
|
function _interopRequireDefault(e) {
|
|
5
|
-
return e && e.__esModule
|
|
5
|
+
return e && e.__esModule
|
|
6
|
+
? e
|
|
7
|
+
: {
|
|
8
|
+
default: e,
|
|
9
|
+
};
|
|
6
10
|
}
|
|
7
11
|
const getInlineSourceMappingURL = require("../DeltaBundler/Serializers/helpers/getInlineSourceMappingURL");
|
|
8
12
|
const {
|
package/src/lib/getGraphId.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import type {TransformInputOptions} from '../DeltaBundler/types.flow';
|
|
15
15
|
import type {ResolverInputOptions} from '../shared/types.flow';
|
|
16
16
|
|
|
17
|
-
const canonicalize = require('metro-core/
|
|
17
|
+
const canonicalize = require('metro-core/private/canonicalize');
|
|
18
18
|
|
|
19
19
|
export opaque type GraphId: string = string;
|
|
20
20
|
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _CountingSet = _interopRequireDefault(require("./CountingSet"));
|
|
4
4
|
function _interopRequireDefault(e) {
|
|
5
|
-
return e && e.__esModule
|
|
5
|
+
return e && e.__esModule
|
|
6
|
+
? e
|
|
7
|
+
: {
|
|
8
|
+
default: e,
|
|
9
|
+
};
|
|
6
10
|
}
|
|
7
11
|
const countLines = require("./countLines");
|
|
8
12
|
const getPreludeCode = require("./getPreludeCode");
|
|
9
13
|
const transformHelpers = require("./transformHelpers");
|
|
10
|
-
const defaults = require("metro-config/
|
|
14
|
+
const defaults = require("metro-config/private/defaults/defaults");
|
|
11
15
|
async function getPrependedScripts(
|
|
12
16
|
config,
|
|
13
17
|
options,
|
|
@@ -15,14 +15,14 @@ import type Bundler from '../Bundler';
|
|
|
15
15
|
import type DeltaBundler, {Module} from '../DeltaBundler';
|
|
16
16
|
import type {TransformInputOptions} from '../DeltaBundler/types.flow';
|
|
17
17
|
import type {ResolverInputOptions} from '../shared/types.flow';
|
|
18
|
-
import type {ConfigT} from 'metro-config/
|
|
18
|
+
import type {ConfigT} from 'metro-config/private/configTypes.flow';
|
|
19
19
|
|
|
20
20
|
import CountingSet from './CountingSet';
|
|
21
21
|
|
|
22
22
|
const countLines = require('./countLines');
|
|
23
23
|
const getPreludeCode = require('./getPreludeCode');
|
|
24
24
|
const transformHelpers = require('./transformHelpers');
|
|
25
|
-
const defaults = require('metro-config/
|
|
25
|
+
const defaults = require('metro-config/private/defaults/defaults');
|
|
26
26
|
|
|
27
27
|
async function getPrependedScripts(
|
|
28
28
|
config: ConfigT,
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
* @oncall react_native
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type {Dependency, ResolvedDependency} from '../DeltaBundler/types.flow';
|
|
13
|
+
|
|
14
|
+
export function isResolvedDependency(
|
|
15
|
+
dep: Dependency,
|
|
16
|
+
): dep is ResolvedDependency {
|
|
17
|
+
return dep.absolutePath != null;
|
|
18
|
+
}
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var _contextModuleTemplates = require("./contextModuleTemplates");
|
|
4
4
|
var _isAssetFile = _interopRequireDefault(
|
|
5
|
-
require("metro-resolver/
|
|
5
|
+
require("metro-resolver/private/utils/isAssetFile")
|
|
6
6
|
);
|
|
7
7
|
function _interopRequireDefault(e) {
|
|
8
|
-
return e && e.__esModule
|
|
8
|
+
return e && e.__esModule
|
|
9
|
+
? e
|
|
10
|
+
: {
|
|
11
|
+
default: e,
|
|
12
|
+
};
|
|
9
13
|
}
|
|
10
14
|
const baseIgnoredInlineRequires = [
|
|
11
15
|
"React",
|
|
@@ -79,10 +83,6 @@ async function calcTransformerOptions(
|
|
|
79
83
|
);
|
|
80
84
|
return {
|
|
81
85
|
...baseOptions,
|
|
82
|
-
inlinePlatform:
|
|
83
|
-
transform?.unstable_inlinePlatform != null
|
|
84
|
-
? transform.unstable_inlinePlatform
|
|
85
|
-
: true,
|
|
86
86
|
inlineRequires: transform?.inlineRequires || false,
|
|
87
87
|
experimentalImportSupport: transform?.experimentalImportSupport || false,
|
|
88
88
|
unstable_disableES6Transforms:
|