31 lines
769 B
TypeScript
31 lines
769 B
TypeScript
import { ENV } from './config'
|
|
|
|
type Level = 'log' | 'info' | 'warn' | 'error' | 'debug'
|
|
|
|
const isRelease = ENV === 'release'
|
|
|
|
function emit(level: Exclude<Level, 'debug'>, args: any[]): void {
|
|
if (isRelease && level !== 'error') return
|
|
if (level === 'log') {
|
|
console.log(...args)
|
|
} else if (level === 'info') {
|
|
console.info(...args)
|
|
} else if (level === 'warn') {
|
|
console.warn(...args)
|
|
} else {
|
|
console.error(...args)
|
|
}
|
|
}
|
|
|
|
const logger = {
|
|
log: (...args: any[]) => emit('log', args),
|
|
info: (...args: any[]) => emit('info', args),
|
|
warn: (...args: any[]) => emit('warn', args),
|
|
error: (...args: any[]) => emit('error', args),
|
|
debug: (...args: any[]) => emit('log', ['[DEBUG]', ...args]),
|
|
}
|
|
|
|
export default logger
|
|
export { logger }
|
|
|