xmppjs-chat-bot
Version:
Server-side XMPP chat bot
98 lines • 2.6 kB
JavaScript
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
;