/* eslint-disable @typescript-eslint/no-explicit-any,no-console */ import { LogLevel } from '../level'; import { LogRecord } from '../record'; const consoleLevel = LogLevel.match( [ [LogLevel.Error, (console: Console) => console.error.bind(console)], [LogLevel.Warning, (console: Console) => console.warn.bind(console)], [LogLevel.Info, (console: Console) => console.info.bind(console)], // [LogLevel.Debug, (console: Console) => console.debug.bind(console)], ], (console: Console) => console.debug.bind(console) ); export const consoleHandler = (logRecord: LogRecord): void => { const prefix = logRecord.category.length > 0 ? [`[${logRecord.category}]`] : []; const suffix = logRecord.message.map((part) => (typeof part === 'string' ? part : part.value)); consoleLevel(logRecord.level)(console)(...prefix, ...suffix); };