UNPKG

clrsole

Version:
60 lines (59 loc) 1.45 kB
import { inspect } from "node:util"; import { PatternLayout, LogFactory, Level } from "base-log-factory"; import { Level as Level2 } from "base-log-factory"; import { DebugAppender } from "blf-debug-appender"; import pc from "picocolors"; function colorText(color, root, messages, depth) { for (let i = 0, len = messages.length, tmp; i < len; i++) { tmp = messages[i]; switch (typeof tmp) { case "object": tmp = inspect(tmp, { depth }); break; case "symbol": tmp = tmp.toString(); break; } root += ` ${tmp}`; } return pc[color](root); } const clrsole = {}; Object.entries(pc).forEach(([color, fn]) => { if (typeof fn === "function") { clrsole[color] = (...messages) => { console.log(colorText(color, "", messages, Infinity)); }; } }); function createConverter(specifier) { if (specifier === "m") { return (event) => { return event.message.map((msg) => { switch (typeof msg) { case "object": return inspect(msg); case "symbol": return msg.toString(); default: return msg; } }).join(" "); }; } } const debugAppender = new DebugAppender({ layout: new PatternLayout( "%d{HH:mm:ss} [%p] - %m", createConverter ) }); const factory = new LogFactory({ level: Level.WARN, appenders: [debugAppender] }); export { Level2 as Level, clrsole, factory };