UNPKG

tiny-typescript-logger

Version:

<h1>Tiny TypeScript Logger</h2>

116 lines (112 loc) 3.93 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { LogLevel: () => LogLevel, log: () => log }); module.exports = __toCommonJS(src_exports); // src/logger.ts var import_chalk = __toESM(require("chalk"), 1); 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 = import_chalk.default.dim(date); const logLevelName = logLevelToName[level] ?? "unknown"; const logLevelColor = logLevelToColor[level] ?? "#f1f5f9" /* LightGray */; const logLevel = import_chalk.default.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(); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { LogLevel, log });