From 6fe69f6fc0625f30e4a6d787053c7b6645e77d4d Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Tue, 11 Feb 2020 07:27:00 -0800 Subject: [PATCH] Make sure Metro's own messages are logged as well Summary: This diff logs the Metro messages as well so that the logs also show it Metro dies or something Reviewed By: jknoxville Differential Revision: D19791112 fbshipit-source-id: 477ccdd291df90e49b016d4aeae121d4d81a3835 --- src/devices/MetroDevice.tsx | 41 ++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/devices/MetroDevice.tsx b/src/devices/MetroDevice.tsx index 1f62795fa..5affc56c0 100644 --- a/src/devices/MetroDevice.tsx +++ b/src/devices/MetroDevice.tsx @@ -113,6 +113,31 @@ const metroLogLevelMapping: {[key: string]: LogLevel} = { debug: 'debug', }; +function getLoglevelFromMessageType( + type: ReportableEvent['type'], +): LogLevel | null { + switch (type) { + case 'bundle_build_done': + case 'bundle_build_started': + case 'initialize_done': + return 'debug'; + case 'bundle_build_failed': + case 'bundling_error': + case 'global_cache_error': + case 'hmr_client_error': + return 'error'; + case 'bundle_transform_progressed': + return null; // Don't show at all + case 'client_log': + return null; // Handled separately + case 'dep_graph_loaded': + case 'dep_graph_loading': + case 'global_cache_disabled': + default: + return 'verbose'; + } +} + export default class MetroDevice extends BaseDevice { ws: WebSocket; @@ -134,9 +159,23 @@ export default class MetroDevice extends BaseDevice { type, tag: message.type, message: message.data - .map(v => (v && typeof v === 'object' ? JSON.stringify(v) : v)) + .map(v => + v && typeof v === 'object' ? JSON.stringify(v, null, 2) : v, + ) .join(' '), }); + } else { + const level = getLoglevelFromMessageType(message.type); + if (level !== null) { + this.addLogEntry({ + date: new Date(), + pid: 0, + tid: 0, + type: level, + tag: message.type, + message: JSON.stringify(message, null, 2), + }); + } } };