implement lib
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user