UNPKG

rexuws

Version:

An express-like framework built on top of uWebsocket.js aims at simple codebase and high performance

63 lines (62 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class Logger { constructor(opts, logger) { if (!opts || typeof opts !== 'object') { this._prefix = ''; this._level = ['error', 'warn', 'deprecate']; } else { const { prefix = '', level = ['error', 'warn', 'deprecate'] } = opts; this._prefix = prefix; if (typeof level === 'boolean') { if (level) this._level = ['error', 'warn', 'deprecate', 'info', 'log', 'trace']; else this._level = false; } else this._level = level; } this._logger = logger || console; this.info = this.hasLogger('info') ? this._logger.info.bind(this._logger, this._prefix) : this.off; this.log = this.hasLogger('log') ? this._logger.log.bind(this._logger, this._prefix) : this.off; this.error = this.hasLogger('error') ? this._logger.error.bind(this._logger, this._prefix) : this.off; this.warn = this.hasLogger('warn') ? this._logger.warn.bind(this._logger, this._prefix) : this.off; this.trace = this.hasLogger('trace') ? this._logger.trace.bind(this._logger, this._prefix) : this.off; this.deprecate = this.hasLogger('deprecate') ? this._logger.warn.bind(this._logger, this._prefix, '[DEPRECATED]') : this.off; this.print = this._logger.log.bind(this._logger, this._prefix); } // eslint-disable-next-line class-methods-use-this off() { return null; } hasLogger(type) { if (!this._level) return false; if (Array.isArray(this._level) && this._level.indexOf(type) !== -1) return true; if (this._level === type) return true; return false; } getOptions() { return { level: this._level, prefix: this._prefix, }; } } exports.default = Logger;