UNPKG

tiny-typescript-logger

Version:

<h1>Tiny TypeScript Logger</h2>

78 lines (76 loc) 2.25 kB
// src/logger.ts import chalk from "chalk"; var LogLevel = /* @__PURE__ */ ((LogLevel2) => { LogLevel2[LogLevel2["Trace"] = 10] = "Trace"; LogLevel2[LogLevel2["Debug"] = 20] = "Debug"; LogLevel2[LogLevel2["Info"] = 30] = "Info"; LogLevel2[LogLevel2["Warn"] = 40] = "Warn"; LogLevel2[LogLevel2["Error"] = 50] = "Error"; LogLevel2[LogLevel2["Fatal"] = 60] = "Fatal"; return LogLevel2; })(LogLevel || {}); var logLevelToName = { [10 /* Trace */]: "trace", [20 /* Debug */]: "debug", [30 /* Info */]: "info", [40 /* Warn */]: "warn", [50 /* Error */]: "error", [60 /* Fatal */]: "fatal" }; var logLevelToColor = { [10 /* Trace */]: "#ECD5E3" /* Lavender */, [20 /* Debug */]: "#ABDEE6" /* PastelBlue */, [30 /* Info */]: "#97C1A9" /* PastelGreen */, [40 /* Warn */]: "#FDFD96" /* PastelYellow */, [50 /* Error */]: "#FFB6B6" /* LightCoral */, [60 /* Fatal */]: "#FF6961" /* PastelRed */ }; var Logger = class { debug(...items) { this.log(20 /* Debug */, ...items); } error(...items) { this.log(50 /* Error */, ...items); } fatal(...items) { this.log(60 /* Fatal */, ...items); } info(...items) { this.log(30 /* Info */, ...items); } log(level, ...items) { if (items.length === 0) { return; } const message = this.isString(items[0]) ? items.shift() : ""; const formattedMessage = this.formatMessage(level, message); console.log(formattedMessage, ...items); } trace(...items) { this.log(10 /* Trace */, ...items); } warn(...items) { this.log(40 /* Warn */, ...items); } formatMessage(level, message) { const date = (/* @__PURE__ */ new Date()).toISOString(); const formattedDate = chalk.dim(date); const logLevelName = logLevelToName[level] ?? "unknown"; const logLevelColor = logLevelToColor[level] ?? "#f1f5f9" /* LightGray */; const logLevel = chalk.hex(logLevelColor)(logLevelName.toUpperCase()); const formattedLogLevel = `[${logLevel}]`; const formattedMessage = [formattedLogLevel, formattedDate, message].join( " " ); return formattedMessage; } isString(value) { return typeof value === "string"; } }; // src/index.ts var log = new Logger(); export { LogLevel, log };