import { config } from './config'; const levels = ['debug', 'info', 'warn', 'error', 'none']; const levelToInt: { [level: string]: number } = {}; const intToLevel: { [int: number]: string } = {}; for (let index = 0; index < levels.length; index++) { const level = levels[index]; levelToInt[level] = index; intToLevel[index] = level; } /** * @ignore */ export class Logger { static error(message: string) { if (!this.shouldLog('error')) return; console.error(this.logMessage('error', message)); } static warn(message: string) { if (!this.shouldLog('warn')) return; console.warn(this.logMessage('warn', message)); } static info(message: string) { if (!this.shouldLog('info')) return; console.log(this.logMessage('info', message)); } static debug(message: string) { if (!this.shouldLog('debug')) return; console.log(this.logMessage('debug', message)); } static logMessage(level: string, message: string) { return `[${level.toUpperCase()}] ${message}`; } static shouldLog(level: string) { const currentLevel = levelToInt[config.logLevel]; return currentLevel <= levelToInt[level]; } }