UNPKG

recoder-shared

Version:

Shared types, utilities, and configurations for Recoder

59 lines (48 loc) 1.5 kB
// Browser-safe logger implementation without winston or chalk export class Logger { private static instance: Logger; static getInstance(): Logger { if (!Logger.instance) { Logger.instance = new Logger(); } return Logger.instance; } static info(message: string, meta?: any): void { console.log('ℹ', message); if (meta) console.log(meta); } static warn(message: string, meta?: any): void { console.warn('⚠', message); if (meta) console.warn(meta); } static error(message: string, meta?: any): void { console.error('✗', message); if (meta) console.error(meta); } static success(message: string, meta?: any): void { console.log('✓', message); if (meta) console.log(meta); } static debug(message: string, meta?: any): void { if (typeof window !== 'undefined' && window && typeof localStorage !== 'undefined' && localStorage && localStorage.getItem('DEBUG')) { console.log('🐛', message); if (meta) console.log(meta); } } // Instance methods that delegate to static methods info(message: string, meta?: any): void { Logger.info(message, meta); } warn(message: string, meta?: any): void { Logger.warn(message, meta); } error(message: string, meta?: any): void { Logger.error(message, meta); } success(message: string, meta?: any): void { Logger.success(message, meta); } debug(message: string, meta?: any): void { Logger.debug(message, meta); } }