UNPKG

@cosmos-kit/core

Version:

cosmos-kit wallet connector core package

69 lines (68 loc) 2.01 kB
function wrap(logLevel, message) { switch (logLevel) { case 'ERROR': return [`%c${logLevel} -`, 'color: Red;', message]; case 'WARN': return [`%c${logLevel} -`, 'color: Orange;', message]; case 'INFO': return [`%c${logLevel} -`, 'color: Blue;', message]; case 'DEBUG': return [`%c${logLevel} -`, 'color: Purple;', message]; case 'TRACE': return [`%c${logLevel} -`, 'color: Brown;', message]; } } export class Logger { logger; level; levelOrder = [ 'TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'NONE', ]; constructor(level = 'INFO') { this.logger = console; this.level = level; } compare(a, b) { const aindex = this.levelOrder.indexOf(a); const bindex = this.levelOrder.indexOf(b); if (aindex > bindex) { return 1; } else if (aindex < bindex) { return -1; } else { return 0; } } trace(message, ...optionalParams) { if (this.compare('TRACE', this.level) >= 0) { this.logger.trace(...wrap('TRACE', message), ...optionalParams); } } debug(message, ...optionalParams) { if (this.compare('DEBUG', this.level) >= 0) { this.logger.debug(...wrap('DEBUG', message), ...optionalParams); } } info(message, ...optionalParams) { if (this.compare('INFO', this.level) >= 0) { this.logger.info(...wrap('INFO', message), ...optionalParams); } } warn(message, ...optionalParams) { if (this.compare('WARN', this.level) >= 0) { this.logger.warn(...wrap('WARN', message), ...optionalParams); } } error(message, ...optionalParams) { if (this.compare('ERROR', this.level) >= 0) { this.logger.error(...wrap('ERROR', message), ...optionalParams); } } }