metro 0.76.5 → 0.76.7

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metro",
3
- "version": "0.76.5",
3
+ "version": "0.76.7",
4
4
  "description": "🚇 The JavaScript bundler for React Native.",
5
5
  "main": "src/index.js",
6
6
  "bin": "src/cli.js",
@@ -29,28 +29,28 @@
29
29
  "denodeify": "^1.2.1",
30
30
  "error-stack-parser": "^2.0.6",
31
31
  "graceful-fs": "^4.2.4",
32
- "hermes-parser": "0.8.0",
32
+ "hermes-parser": "0.12.0",
33
33
  "image-size": "^1.0.2",
34
34
  "invariant": "^2.2.4",
35
35
  "jest-worker": "^27.2.0",
36
36
  "jsc-safe-url": "^0.2.2",
37
37
  "lodash.throttle": "^4.1.1",
38
- "metro-babel-transformer": "0.76.5",
39
- "metro-cache": "0.76.5",
40
- "metro-cache-key": "0.76.5",
41
- "metro-config": "0.76.5",
42
- "metro-core": "0.76.5",
43
- "metro-file-map": "0.76.5",
44
- "metro-inspector-proxy": "0.76.5",
45
- "metro-minify-terser": "0.76.5",
46
- "metro-minify-uglify": "0.76.5",
47
- "metro-react-native-babel-preset": "0.76.5",
48
- "metro-resolver": "0.76.5",
49
- "metro-runtime": "0.76.5",
50
- "metro-source-map": "0.76.5",
51
- "metro-symbolicate": "0.76.5",
52
- "metro-transform-plugins": "0.76.5",
53
- "metro-transform-worker": "0.76.5",
38
+ "metro-babel-transformer": "0.76.7",
39
+ "metro-cache": "0.76.7",
40
+ "metro-cache-key": "0.76.7",
41
+ "metro-config": "0.76.7",
42
+ "metro-core": "0.76.7",
43
+ "metro-file-map": "0.76.7",
44
+ "metro-inspector-proxy": "0.76.7",
45
+ "metro-minify-terser": "0.76.7",
46
+ "metro-minify-uglify": "0.76.7",
47
+ "metro-react-native-babel-preset": "0.76.7",
48
+ "metro-resolver": "0.76.7",
49
+ "metro-runtime": "0.76.7",
50
+ "metro-source-map": "0.76.7",
51
+ "metro-symbolicate": "0.76.7",
52
+ "metro-transform-plugins": "0.76.7",
53
+ "metro-transform-worker": "0.76.7",
54
54
  "mime-types": "^2.1.27",
55
55
  "node-fetch": "^2.2.0",
56
56
  "nullthrows": "^1.1.1",
@@ -68,10 +68,10 @@
68
68
  "dedent": "^0.7.0",
69
69
  "jest-snapshot": "^26.5.2",
70
70
  "jest-snapshot-serializer-raw": "^1.2.0",
71
- "metro-babel-register": "0.76.5",
72
- "metro-memory-fs": "0.76.5",
73
- "metro-react-native-babel-preset": "0.76.5",
74
- "metro-react-native-babel-transformer": "0.76.5",
71
+ "metro-babel-register": "0.76.7",
72
+ "metro-memory-fs": "0.76.7",
73
+ "metro-react-native-babel-preset": "0.76.7",
74
+ "metro-react-native-babel-transformer": "0.76.7",
75
75
  "mock-req": "^0.2.0",
76
76
  "mock-res": "^0.6.0",
77
77
  "stack-trace": "^0.0.10"
@@ -197,6 +197,7 @@ class Graph {
197
197
  // TODO: Refactor for more explicit immutability
198
198
  newModule !== originalModule ||
199
199
  transfromOutputMayDiffer(newModule, originalModule) ||
200
+ // $FlowFixMe[incompatible-call]
200
201
  !allDependenciesEqual(newModule, originalModule)
201
202
  ) {
202
203
  modified.set(path, newModule);
@@ -240,6 +240,7 @@ export class Graph<T = MixedOutput> {
240
240
  // TODO: Refactor for more explicit immutability
241
241
  newModule !== originalModule ||
242
242
  transfromOutputMayDiffer(newModule, originalModule) ||
243
+ // $FlowFixMe[incompatible-call]
243
244
  !allDependenciesEqual(newModule, originalModule)
244
245
  ) {
245
246
  modified.set(path, newModule);
@@ -31,7 +31,8 @@ import type {
31
31
  ResolverInputOptions,
32
32
  SplitBundleOptions,
33
33
  } from './shared/types.flow';
34
- import type {IncomingMessage, ServerResponse} from 'http';
34
+ import type {IncomingMessage} from 'connect';
35
+ import type {ServerResponse} from 'http';
35
36
  import type {CacheStore} from 'metro-cache';
36
37
  import type {ConfigT, RootPerfLogger} from 'metro-config/src/configTypes.flow';
37
38
  import type {
@@ -478,11 +479,11 @@ class Server {
478
479
  processRequest: (
479
480
  IncomingMessage,
480
481
  ServerResponse,
481
- ((e: ?Error) => mixed),
482
+ ((e: ?Error) => void),
482
483
  ) => void = (
483
484
  req: IncomingMessage,
484
485
  res: ServerResponse,
485
- next: (?Error) => mixed,
486
+ next: (?Error) => void,
486
487
  ) => {
487
488
  this._processRequest(req, res, next).catch(next);
488
489
  };
@@ -500,7 +501,7 @@ class Server {
500
501
  async _processRequest(
501
502
  req: IncomingMessage,
502
503
  res: ServerResponse,
503
- next: (?Error) => mixed,
504
+ next: (?Error) => void,
504
505
  ) {
505
506
  const originalUrl = req.url;
506
507
  req.url = this._rewriteAndNormalizeUrl(req.url);
package/src/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './ModuleGraph/worker/collectDependencies';
14
14
  export * from './Server';
15
15
  export * from './lib/reporting';
16
16
 
17
+ import type {HandleFunction} from 'connect';
17
18
  import type {EventEmitter} from 'events';
18
19
  import type {IncomingMessage, Server as HttpServer} from 'http';
19
20
  import type {Server as HttpsServer} from 'https';
@@ -32,6 +33,7 @@ import type {OutputOptions, RequestOptions} from './shared/types';
32
33
 
33
34
  export {loadConfig, mergeConfig, resolveConfig} from 'metro-config';
34
35
  export {Terminal} from 'metro-core';
36
+ export {TerminalReporter} from './lib/TerminalReporter';
35
37
 
36
38
  export {HttpServer, HttpsServer};
37
39
 
@@ -72,6 +74,7 @@ export interface RunServerOptions {
72
74
  /** @deprecated since version 0.61 */
73
75
  secureKey?: string;
74
76
 
77
+ unstable_extraMiddleware?: ReadonlyArray<HandleFunction>;
75
78
  waitForBundler?: boolean;
76
79
  watch?: boolean;
77
80
  websocketEndpoints?: {
@@ -126,7 +129,7 @@ export function runMetro(
126
129
  options?: RunMetroOptions,
127
130
  ): Promise<MetroServer>;
128
131
 
129
- export function createConnectMiddleWare(
132
+ export function createConnectMiddleware(
130
133
  config: ConfigT,
131
134
  options?: RunMetroOptions,
132
135
  ): Promise<MetroMiddleWare>;
package/src/index.flow.js CHANGED
@@ -17,6 +17,7 @@ const makeServeCommand = require("./commands/serve");
17
17
  const MetroHmrServer = require("./HmrServer");
18
18
  const IncrementalBundler = require("./IncrementalBundler");
19
19
  const createWebsocketServer = require("./lib/createWebsocketServer");
20
+ const TerminalReporter = require("./lib/TerminalReporter");
20
21
  const MetroServer = require("./Server");
21
22
  const outputBundle = require("./shared/output/bundle");
22
23
  const chalk = require("chalk");
@@ -34,6 +35,7 @@ const { InspectorProxy } = require("metro-inspector-proxy");
34
35
  const net = require("net");
35
36
  const { parse } = require("url");
36
37
  exports.Terminal = Terminal;
38
+ exports.TerminalReporter = TerminalReporter;
37
39
  async function getConfig(config) {
38
40
  const defaultConfig = await getDefaultConfig(config.projectRoot);
39
41
  // $FlowFixMe[incompatible-variance]
@@ -134,6 +136,7 @@ exports.runServer = async (
134
136
  // deprecated
135
137
  secureKey,
136
138
  // deprecated
139
+ unstable_extraMiddleware,
137
140
  waitForBundler = false,
138
141
  websocketEndpoints = {},
139
142
  watch,
@@ -161,6 +164,9 @@ exports.runServer = async (
161
164
  }
162
165
  );
163
166
  serverApp.use(middleware);
167
+ for (const handler of unstable_extraMiddleware ?? []) {
168
+ serverApp.use(handler);
169
+ }
164
170
  let inspectorProxy = null;
165
171
  if (config.server.runInspectorProxy) {
166
172
  inspectorProxy = new InspectorProxy(config.projectRoot);
@@ -175,6 +181,7 @@ exports.runServer = async (
175
181
  ...secureServerOptions,
176
182
  };
177
183
  }
184
+ // $FlowFixMe[incompatible-call] 'http' and 'https' Flow types do not match
178
185
  httpServer = https.createServer(options, serverApp);
179
186
  } else {
180
187
  httpServer = http.createServer(serverApp);
@@ -11,6 +11,7 @@
11
11
 
12
12
  'use strict';
13
13
 
14
+ import type {HandleFunction} from 'connect';
14
15
  import type {CustomResolverOptions} from 'metro-resolver';
15
16
  import type {ReadOnlyGraph} from './DeltaBundler';
16
17
  import type {ServerOptions} from './Server';
@@ -34,6 +35,7 @@ const makeServeCommand = require('./commands/serve');
34
35
  const MetroHmrServer = require('./HmrServer');
35
36
  const IncrementalBundler = require('./IncrementalBundler');
36
37
  const createWebsocketServer = require('./lib/createWebsocketServer');
38
+ const TerminalReporter = require('./lib/TerminalReporter');
37
39
  const MetroServer = require('./Server');
38
40
  const outputBundle = require('./shared/output/bundle');
39
41
  const chalk = require('chalk');
@@ -82,6 +84,7 @@ export type RunServerOptions = $ReadOnly<{
82
84
  secure?: boolean, // deprecated
83
85
  secureCert?: string, // deprecated
84
86
  secureKey?: string, // deprecated
87
+ unstable_extraMiddleware?: $ReadOnlyArray<HandleFunction>,
85
88
  waitForBundler?: boolean,
86
89
  watch?: boolean,
87
90
  websocketEndpoints?: $ReadOnly<{
@@ -138,6 +141,7 @@ type BuildCommandOptions = {} | null;
138
141
  type ServeCommandOptions = {} | null;
139
142
 
140
143
  exports.Terminal = Terminal;
144
+ exports.TerminalReporter = TerminalReporter;
141
145
 
142
146
  export type {MetroConfig};
143
147
 
@@ -254,6 +258,7 @@ exports.runServer = async (
254
258
  secure, //deprecated
255
259
  secureCert, // deprecated
256
260
  secureKey, // deprecated
261
+ unstable_extraMiddleware,
257
262
  waitForBundler = false,
258
263
  websocketEndpoints = {},
259
264
  watch,
@@ -283,6 +288,10 @@ exports.runServer = async (
283
288
 
284
289
  serverApp.use(middleware);
285
290
 
291
+ for (const handler of unstable_extraMiddleware ?? []) {
292
+ serverApp.use(handler);
293
+ }
294
+
286
295
  let inspectorProxy: ?InspectorProxy = null;
287
296
  if (config.server.runInspectorProxy) {
288
297
  inspectorProxy = new InspectorProxy(config.projectRoot);
@@ -299,6 +308,7 @@ exports.runServer = async (
299
308
  ...secureServerOptions,
300
309
  };
301
310
  }
311
+ // $FlowFixMe[incompatible-call] 'http' and 'https' Flow types do not match
302
312
  httpServer = https.createServer(options, serverApp);
303
313
  } else {
304
314
  httpServer = http.createServer(serverApp);
@@ -439,7 +439,7 @@ class TerminalReporter {
439
439
 
440
440
  /**
441
441
  * Single entry point for reporting events. That allows us to implement the
442
- * corresponding JSON reporter easily and have a consistent repor∏ting.
442
+ * corresponding JSON reporter easily and have a consistent reporting.
443
443
  */
444
444
  update(event) {
445
445
  if (event.type === "bundle_transform_progressed") {
@@ -515,7 +515,7 @@ class TerminalReporter {
515
515
 
516
516
  /**
517
517
  * Single entry point for reporting events. That allows us to implement the
518
- * corresponding JSON reporter easily and have a consistent repor∏ting.
518
+ * corresponding JSON reporter easily and have a consistent reporting.
519
519
  */
520
520
  update(event: TerminalReportableEvent): void {
521
521
  if (event.type === 'bundle_transform_progressed') {