UNPKG

xmppjs-chat-bot

Version:
98 lines 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapLogger = exports.ColorConsoleLogger = exports.ConsoleLogger = exports.DefaultLogger = void 0; class DefaultLogger { debug() { } info() { } warn() { } error() { } setLevel() { } } exports.DefaultLogger = DefaultLogger; class ConsoleLogger { constructor(prefix) { this.prefix = prefix ?? ''; this.debug = this._void; this.info = this._info; this.warn = this._warn; this.error = this._error; } _debug(s) { console.log('' + s); } _info(s) { console.info('' + s); } _warn(s) { console.warn('' + s); } _error(s) { console.error('' + s); } _void(_s) { } setLevel(level) { this.debug = this._void; this.info = this._void; this.warn = this._void; this.error = this._void; if (level === 'error') { this.error = this._error; } else if (level === 'warn') { this.error = this._error; this.warn = this._warn; } else if (level === 'info') { this.error = this._error; this.warn = this._warn; this.info = this._info; } else if (level === 'debug') { this.error = this._error; this.warn = this._warn; this.info = this._info; this.debug = this._debug; } } } exports.ConsoleLogger = ConsoleLogger; class ColorConsoleLogger extends ConsoleLogger { _debug(s) { super._debug('\x1b[90m' + s + '\x1b[0m'); } _info(s) { super._info('\x1b[32m' + s + '\x1b[0m'); } _warn(s) { super._warn('\x1b[33m' + s + '\x1b[0m'); } _error(s) { super._error('\x1b[31m' + s + '\x1b[0m'); } } exports.ColorConsoleLogger = ColorConsoleLogger; function _addPrefix(s, name) { if (typeof s !== 'string') { if ('toString' in s) { s = s.toString(); } else { s = '???'; } } if (!s.startsWith('[')) { return `[${name}] ${s}`; } return `[${name}]${s}`; } function wrapLogger(name, logger) { return { debug: (s) => logger.debug(_addPrefix(s, name)), info: (s) => logger.info(_addPrefix(s, name)), warn: (s) => logger.warn(_addPrefix(s, name)), error: (s) => logger.error(_addPrefix(s, name)), setLevel: (level) => logger.setLevel(level) }; } exports.wrapLogger = wrapLogger; //# sourceMappingURL=logger.js.map