Skip to content

Commit ff72cf6

Browse files
vancehuthymikee
authored andcommitted
feat: skip successful Metro server requests if --verbose not set (#291)
Summary: --------- Metro server can become too verbose if there are a lot of assets due to morgan verbosely logging every request. Trying to make use of `verbose` flag to allow users skipping successful requests if 'verbose' is set to false (default) <!-- Thank you for sending the PR! We appreciate you spending the time to work on these changes. Help us understand your motivation by explaining why you decided to make this change: --> Test Plan: ---------- 1. run `react-native start` Expected Result: no console output on a successful request 2. run `react-native start --verbose` Expected Result: console output for every request <!-- Write your test plan here (**REQUIRED**). If you changed any code, please provide us with clear instructions on how you verified your changes work. Bonus points for screenshots and videos! Increase test coverage whenever possible. -->
1 parent 341873d commit ff72cf6

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

packages/cli/src/commands/server/runServer.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,14 @@
88
*/
99

1010
import Metro from 'metro';
11-
1211
import {Terminal} from 'metro-core';
13-
1412
import morgan from 'morgan';
1513
import path from 'path';
14+
import logger from '../../tools/logger';
1615
import type {ContextT} from '../../tools/types.flow';
1716
import messageSocket from './messageSocket';
1817
import webSocketProxy from './webSocketProxy';
1918
import MiddlewareManager from './middleware/MiddlewareManager';
20-
2119
import loadMetroConfig from '../../tools/loadMetroConfig';
2220

2321
export type Args = {|
@@ -62,7 +60,14 @@ async function runServer(argv: Array<string>, ctx: ContextT, args: Args) {
6260
watchFolders: metroConfig.watchFolders,
6361
});
6462

65-
middlewareManager.getConnectInstance().use(morgan('combined'));
63+
middlewareManager.getConnectInstance().use(
64+
morgan(
65+
'combined',
66+
!logger.isVerbose() && {
67+
skip: (req, res) => res.statusCode < 400,
68+
},
69+
),
70+
);
6671

6772
metroConfig.watchFolders.forEach(
6873
middlewareManager.serveStatic.bind(middlewareManager),

packages/cli/src/tools/logger.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ const setVerbose = (level: boolean) => {
4040
verbose = level;
4141
};
4242

43+
const isVerbose = () => verbose;
44+
4345
export default {
4446
success,
4547
info,
@@ -48,4 +50,5 @@ export default {
4850
debug,
4951
log,
5052
setVerbose,
53+
isVerbose,
5154
};

0 commit comments

Comments
 (0)