From 970af708aa5305d436b19b6f4e90a2ef5fd07751 Mon Sep 17 00:00:00 2001 From: Duane Johnson Date: Thu, 15 Oct 2020 17:39:06 -0600 Subject: [PATCH] Show mount points in debug log (#1325) * Show mount points in debug log * Improve in-memory cache wording * Formatting --- snowpack/src/commands/dev.ts | 9 +++++++++ snowpack/src/logger.ts | 24 +++++++++++++++++++----- snowpack/src/types/snowpack.ts | 2 ++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/snowpack/src/commands/dev.ts b/snowpack/src/commands/dev.ts index 785f82d6b4..1d99360444 100644 --- a/snowpack/src/commands/dev.ts +++ b/snowpack/src/commands/dev.ts @@ -268,6 +268,15 @@ export async function startServer(commandOptions: CommandOptions) { const filesBeingDeleted = new Set(); const filesBeingBuilt = new Map>(); + logger.debug(`Using in-memory cache.`); + logger.debug(`Mounting directories:`, { + task: () => { + for (const [dirDisk, dirUrl] of Object.entries(config.mount)) { + logger.debug(` -> '${dirDisk}' as URL '${dirUrl}'`); + } + }, + }); + // Set the proper install options, in case an install is needed. const dependencyImportMapLoc = path.join(DEV_DEPENDENCIES_DIR, 'import-map.json'); logger.debug(`Using cache folder: ${path.relative(cwd, DEV_DEPENDENCIES_DIR)}`); diff --git a/snowpack/src/logger.ts b/snowpack/src/logger.ts index 2db785d865..b1e25ddffb 100644 --- a/snowpack/src/logger.ts +++ b/snowpack/src/logger.ts @@ -37,7 +37,17 @@ class SnowpackLogger { }, }; - private log({level, name, message}: {level: LoggerEvent; name: string; message: string}) { + private log({ + level, + name, + message, + task, + }: { + level: LoggerEvent; + name: string; + message: string; + task?: Function; + }) { // test if this level is enabled or not if (levels[this.level] > levels[level]) { return; // do nothing @@ -66,30 +76,34 @@ class SnowpackLogger { } else { throw new Error(`No logging method defined for ${level}`); } + + // logger takes a possibly processor-intensive task, and only + // processes it when this log level is enabled + task && task(this); } /** emit messages only visible when --debug is passed */ public debug(message: string, options?: LoggerOptions): void { const name = (options && options.name) || 'snowpack'; - this.log({level: 'debug', name, message}); + this.log({level: 'debug', name, message, task: options?.task}); } /** emit general info */ public info(message: string, options?: LoggerOptions): void { const name = (options && options.name) || 'snowpack'; - this.log({level: 'info', name, message}); + this.log({level: 'info', name, message, task: options?.task}); } /** emit non-fatal warnings */ public warn(message: string, options?: LoggerOptions): void { const name = (options && options.name) || 'snowpack'; - this.log({level: 'warn', name, message}); + this.log({level: 'warn', name, message, task: options?.task}); } /** emit critical error messages */ public error(message: string, options?: LoggerOptions): void { const name = (options && options.name) || 'snowpack'; - this.log({level: 'error', name, message}); + this.log({level: 'error', name, message, task: options?.task}); } /** get full logging history */ diff --git a/snowpack/src/types/snowpack.ts b/snowpack/src/types/snowpack.ts index 2673355c4f..b57726b4db 100644 --- a/snowpack/src/types/snowpack.ts +++ b/snowpack/src/types/snowpack.ts @@ -199,4 +199,6 @@ export type LoggerEvent = 'debug' | 'info' | 'warn' | 'error'; export interface LoggerOptions { /** (optional) change name at beginning of line */ name?: string; + /** (optional) do some additional work after logging a message, if log level is enabled */ + task?: Function; }