import { isAsphyxiaDebugMode } from "."; export default class Logger { public category: string | null; public constructor(category?: string) { this.category = (category == null) ? null : `[${category}]` } public error(...args: any[]) { this.argsHandler(console.error, ...args) } public debugError(...args: any[]) { if (isAsphyxiaDebugMode()) { this.argsHandler(console.error, ...args) } } public warn(...args: any[]) { this.argsHandler(console.warn, ...args) } public debugWarn(...args: any[]) { if (isAsphyxiaDebugMode()) { this.argsHandler(console.warn, ...args) } } public info(...args: any[]) { this.argsHandler(console.info, ...args) } public debugInfo(...args: any[]) { if (isAsphyxiaDebugMode()) { this.argsHandler(console.info, ...args) } } public log(...args: any[]) { this.argsHandler(console.log, ...args) } public debugLog(...args: any[]) { if (isAsphyxiaDebugMode()) { this.argsHandler(console.log, ...args) } } private argsHandler(target: Function, ...args: any[]) { if (this.category == null) { target(...args) } else { target(this.category, ...args) } } }