implement lib

This commit is contained in:
2024-05-14 12:46:32 +02:00
parent 903a315788
commit 8ca1f9e2f2
7 changed files with 254 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
import { Chalk } from 'chalk'
export type Options = {
format: string,
}
export enum Level {
DEBUG = 0,
TRACE = 1,
INFO = 2,
WARNING = 3,
ERROR = 4,
}
export enum LevelFilter {
DEBUG = 0,
TRACE = 1,
INFO = 2,
WARNING = 3,
ERROR = 4,
OFF = 6,
}
export type WriterOptions = {
minLevel: Level,
with_color: boolean,
[key: string | number | symbol]: any,
}
export function level_to_string(level: Level, with_color: boolean) : string {
const str = get_string(level)
if (!with_color) return str
const color = get_color(level)
return color(str)
}
function get_string(level: Level) : string {
switch (level) {
case Level.DEBUG: return "DEBUG "
case Level.TRACE: return "TRACE "
case Level.INFO: return "INFO "
case Level.WARNING: return "WARNING"
case Level.ERROR: return "ERROR "
}
}
const chalk = new Chalk({ level: 2 }) // 256 colors
function get_color(level: Level) {
switch (level) {
case Level.DEBUG: return chalk.blueBright
case Level.TRACE: return chalk.green
case Level.INFO: return (str: string) => str
case Level.WARNING: return chalk.hex('#FFA500')
case Level.ERROR: return chalk.red
}
}