import Globals from "../Globals"; import Color from "color"; class Logger { // static class private constructor() {} private static GetCurrentTime(): string { return `[${new Date().toLocaleTimeString()}] `; } static log(str: string, colour: Color = Color("white"), bold = false): void { const time = ToConsole(Logger.GetCurrentTime(), Color("gray"), false); const moduleName = ToConsole(Globals.name + " ", Color("cyan"), true); const text = ToConsole(str, colour, bold); console.log( time.str + moduleName.str + text.str, ...time.params.concat(moduleName.params, text.params), ); } static err(str: string): void { Logger.log(str, Color("orange")); } static warn(str: string): void { Logger.log(str, Color("yellow")); } static ok(str: string): void { Logger.log(str, Color("green")); } } interface ConsoleColour { str: string; params: Array; } const ToConsole = (str: string, col: Color, bold: boolean): ConsoleColour => { return { str: `%c` + str + `%c`, params: [ "color: " + col.hex() + ";" + (bold ? "font-weight: bold;" : ""), "color: unset; font-weight: unset;", ], }; }; export default Logger;