diff --git a/docs/Configuration.md b/docs/Configuration.md index ba0a82521b..f62e22b8fc 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -661,6 +661,12 @@ Type: `string => string` A function that will be called every time Metro processes a URL, after normalization of non-standard query-string delimiters using [`jsc-safe-url`](https://www.npmjs.com/package/jsc-safe-url). Metro will use the return value of this function as if it were the original URL provided by the client. This applies to all incoming HTTP requests (after any custom middleware), as well as bundle URLs in `/symbolicate` request payloads and within the hot reloading protocol. +#### `forwardClientLogs` + +Type: `boolean` + +Enable forwarding of `client_log` events (when client logs are [configured](https://github.com/facebook/metro/blob/614ad14a85b22958129ee94e04376b096f03ccb1/packages/metro/src/lib/createWebsocketServer.js#L20)) to the reporter. Defaults to `true`. + --- ### Watcher Options diff --git a/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap b/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap index ae77cc5806..a89a9cea08 100644 --- a/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap +++ b/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap @@ -100,6 +100,7 @@ Object { }, "server": Object { "enhanceMiddleware": [Function], + "forwardClientLogs": true, "port": 8081, "rewriteRequestUrl": [Function], "unstable_serverRoot": null, @@ -280,6 +281,7 @@ Object { }, "server": Object { "enhanceMiddleware": [Function], + "forwardClientLogs": true, "port": 8081, "rewriteRequestUrl": [Function], "unstable_serverRoot": null, @@ -460,6 +462,7 @@ Object { }, "server": Object { "enhanceMiddleware": [Function], + "forwardClientLogs": true, "port": 8081, "rewriteRequestUrl": [Function], "unstable_serverRoot": null, @@ -640,6 +643,7 @@ Object { }, "server": Object { "enhanceMiddleware": [Function], + "forwardClientLogs": true, "port": 8081, "rewriteRequestUrl": [Function], "unstable_serverRoot": null, diff --git a/packages/metro-config/src/configTypes.flow.js b/packages/metro-config/src/configTypes.flow.js index 2c1f27b4b8..970ece6d1e 100644 --- a/packages/metro-config/src/configTypes.flow.js +++ b/packages/metro-config/src/configTypes.flow.js @@ -167,6 +167,7 @@ type MetalConfigT = { type ServerConfigT = { /** @deprecated */ enhanceMiddleware: (Middleware, MetroServer) => Middleware | Server, + forwardClientLogs: boolean, port: number, rewriteRequestUrl: string => string, unstable_serverRoot: ?string, diff --git a/packages/metro-config/src/defaults/index.js b/packages/metro-config/src/defaults/index.js index 9a1ab9a943..1dd099f9a9 100644 --- a/packages/metro-config/src/defaults/index.js +++ b/packages/metro-config/src/defaults/index.js @@ -75,6 +75,7 @@ const getDefaultValues = (projectRoot: ?string): ConfigT => ({ server: { enhanceMiddleware: (middleware, _) => middleware, + forwardClientLogs: true, port: 8081, rewriteRequestUrl: url => url, unstable_serverRoot: null, diff --git a/packages/metro-config/types/configTypes.d.ts b/packages/metro-config/types/configTypes.d.ts index 2dc65b821d..b20131af55 100644 --- a/packages/metro-config/types/configTypes.d.ts +++ b/packages/metro-config/types/configTypes.d.ts @@ -165,6 +165,7 @@ export interface ServerConfigT { metroMiddleware: Middleware, metroServer: MetroServer, ) => Middleware | Server; + forwardClientLogs: boolean; port: number; rewriteRequestUrl: (url: string) => string; unstable_serverRoot: string | null; diff --git a/packages/metro/src/HmrServer.js b/packages/metro/src/HmrServer.js index 94969cba51..6c7d7c1b48 100644 --- a/packages/metro/src/HmrServer.js +++ b/packages/metro/src/HmrServer.js @@ -228,12 +228,14 @@ class HmrServer { ), ); case 'log': - this._config.reporter.update({ - type: 'client_log', - level: data.level, - data: data.data, - mode: data.mode, - }); + if (this._config.server.forwardClientLogs) { + this._config.reporter.update({ + type: 'client_log', + level: data.level, + data: data.data, + mode: data.mode, + }); + } break; case 'log-opt-in': client.optedIntoHMR = true;