Updated loger
This commit is contained in:
@@ -1,21 +1,63 @@
|
||||
import { colorCustom as c } from "./Functions/colors.js"
|
||||
import chalk from "chalk"
|
||||
import { logTimeFormatter } from "./Functions/intlFormaters.js"
|
||||
|
||||
const colors = {
|
||||
red: "#f38ba8",
|
||||
lavender: "#b4befe",
|
||||
green: "#a6e3a1",
|
||||
pink: "#f5c2e7"
|
||||
}
|
||||
|
||||
type Colors = keyof typeof colors
|
||||
|
||||
const AllLogs = {
|
||||
info: { m: "INFO", c: null },
|
||||
error: { m: "ERROR", c: "#ff6666" },
|
||||
warn: { m: "WARN", c: "#ffcc99" },
|
||||
debug: { m: "DEBUG", c: "#66ff66" }
|
||||
debug: { m: "DEBUG", c: "#66ff66" },
|
||||
custom: { m: "CUSTOM", c: null }
|
||||
} as const
|
||||
|
||||
type LogType = keyof typeof AllLogs
|
||||
|
||||
export function log(m: string, t: LogType = "info"): void {
|
||||
type CustomColorProps = {
|
||||
type: "preset"
|
||||
color: Colors
|
||||
} | {
|
||||
type: "custom"
|
||||
color: string
|
||||
}
|
||||
|
||||
export function log(m: string, t: LogType = "info", c?: CustomColorProps): void {
|
||||
const date = new Date()
|
||||
const time = logTimeFormatter(date)
|
||||
const logType = AllLogs[t].m
|
||||
const logColor = AllLogs[t].c
|
||||
|
||||
const message = `[${logType}] ${time} | ${m}`
|
||||
console.log(logColor ? c(message, logColor) : message)
|
||||
if (t === "info") {
|
||||
console.log(message)
|
||||
return
|
||||
}
|
||||
|
||||
if (t === "custom") {
|
||||
if (!c) {
|
||||
console.error("Custom log type requires a color.")
|
||||
return
|
||||
}
|
||||
|
||||
if (c.type === "preset") {
|
||||
const color = colors[c.color]
|
||||
console.log(cc(message, color))
|
||||
} else {
|
||||
console.log(cc(message, c.color))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
console.log(cc(message, logColor!))
|
||||
}
|
||||
|
||||
function cc(text: string, color: string) {
|
||||
return chalk.hex(color)(text)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user