shylog
Version:
Tiny client-side conditional logger
41 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var Shylog = (function () {
function Shylog(_a) {
var _b = _a === void 0 ? { emit: false, logger: console.log } : _a, emit = _b.emit, logger = _b.logger;
this.emit = emit;
this.externalLogger = logger;
this.buffer = [];
this.customLevel = {};
this.error = this.setLevel(1);
this.warn = this.setLevel(2);
this.info = this.setLevel(3);
this.log = this.setLevel(4);
}
Shylog.prototype.getLogs = function (level) {
if (typeof level === 'function') {
return this.buffer.filter(function (log) { return log.level === level.level; });
}
else {
return level ? this.buffer.filter(function (log) { return log.level === level; }) : this.buffer;
}
};
Shylog.prototype.setLevel = function (level) {
var _this = this;
var logFn = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var message = { level: level, time: Date.now(), msg: args.join(' ') };
_this.buffer.push(message);
_this.emit && _this.externalLogger(message);
};
logFn.level = level;
this.customLevel[level] = logFn;
return logFn;
};
return Shylog;
}());
exports.default = Shylog;
//# sourceMappingURL=index.js.map