@uploadx/core
Version:
Node.js resumable upload middleware
59 lines (58 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = exports.BasicLogger = void 0;
const util_1 = require("util");
const levels = ['debug', 'info', 'warn', 'error', 'none'];
var PriorityOf;
(function (PriorityOf) {
PriorityOf[PriorityOf["debug"] = 0] = "debug";
PriorityOf[PriorityOf["info"] = 1] = "info";
PriorityOf[PriorityOf["warn"] = 2] = "warn";
PriorityOf[PriorityOf["error"] = 3] = "error";
PriorityOf[PriorityOf["none"] = 4] = "none";
})(PriorityOf || (PriorityOf = {}));
/**
* Basic logger implementation
*/
class BasicLogger {
constructor(options = {}) {
this.options = options;
this._logLevel = 'none';
this.write = (data, level) => {
if (PriorityOf[level] >= PriorityOf[this._logLevel]) {
const message = (0, util_1.formatWithOptions)({ depth: 2, maxStringLength: 80 }, ...data);
const timestamp = new Date().toISOString();
this.logger[level](`${timestamp} ${level.toUpperCase()} ${this.label} ${message}`);
}
};
this.logger = options.logger || console;
this.label = options.label ?? 'uploadx:';
if (options.logLevel)
this.logLevel = options.logLevel;
if (options.write)
this.write = options.write;
}
get logLevel() {
return this._logLevel;
}
set logLevel(value) {
if (value && !levels.includes(value)) {
throw new Error(`Invalid log level: ${value}, supported levels are: ${levels.join(', ')}.`);
}
this._logLevel = value;
}
info(...data) {
this.write(data, 'info');
}
warn(...data) {
this.write(data, 'warn');
}
error(...data) {
this.write(data, 'error');
}
debug(...data) {
this.write(data, 'debug');
}
}
exports.BasicLogger = BasicLogger;
exports.logger = new BasicLogger();