UNPKG

@httpc/kit

Version:

httpc toolbox for building function-based API with minimal code and end-to-end type safety

69 lines (68 loc) 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConsoleLogger = void 0; class ConsoleLogger { constructor(label, level = "info") { this.label = label; this.level = level; } error(message, ...args) { if (typeof message === "string") { this.log("error", message, ...args); } else { console.error(message); } } info(message, ...args) { this.log("info", message, ...args); } warn(message, ...args) { this.log("warn", message, ...args); } debug(message, ...args) { this.log("debug", message, ...args); } verbose(message, ...args) { this.log("verbose", message, ...args); } log(level, message, ...args) { if (!this.isLevelEnabled(level)) return; let call; switch (level) { case "warn": call = console.warn; break; case "error": call = console.error; break; case "debug": call = console.debug; break; case "info": case "verbose": default: call = console.info; break; } call.call(console, this.formatMessage(level, message), ...args); } isLevelEnabled(level) { return isLevelEnabled(this.level, level); } formatMessage(level, message) { return `${level} [${this.label}] ${message}`; } } exports.ConsoleLogger = ConsoleLogger; const LOG_LEVELS = [ "debug", "verbose", "info", "warn", "error" ]; function isLevelEnabled(currentLevel, asked) { return LOG_LEVELS.indexOf(asked) >= LOG_LEVELS.indexOf(currentLevel); }