tiny-typescript-logger
Version:
<h1>Tiny TypeScript Logger</h2>
116 lines (112 loc) • 3.93 kB
JavaScript
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
});
;