ariaa
Version:
A CLI for music lovers
54 lines • 1.91 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { bgBlueBright, bgMagentaBright, bgRedBright, bgYellowBright, blueBright, cyan, whiteBright } from "colorette";
class Logger {
static {
__name(this, "Logger");
}
level = 2 /* Info */;
setLevel(level) {
this.level = level;
return this;
}
getLevel() {
return this.level;
}
info(message, ...args) {
this.log(2 /* Info */, "info", bgBlueBright, message, ...args);
}
warn(message, ...args) {
this.log(1 /* Warn */, "warn", bgYellowBright, message, ...args);
}
error(message, ...args) {
this.log(0 /* Error */, "error", bgRedBright, message, ...args);
}
debug(message, ...args) {
this.log(3 /* Debug */, "debug", bgMagentaBright, message, ...args);
}
log(level, type, color, message, ...args) {
if (level > this.level) return;
const messages = message.split(/\n/);
if (messages.length > 1) return messages.forEach((r) => this.log(level, type, color, r));
console[type](`${color(whiteBright(` ${type.toUpperCase()} `))} - ${this.format(message)}`, ...args);
}
format(message) {
let words = message.split(" ");
words = words.map((w) => !isNaN(Number(w)) || w.match(/\d+m?s/gm) ? blueBright(w) : w);
message = words.join(" ");
message = message.replace(/\[.+ => \w+\s?\d?\]/, cyan);
return whiteBright(message);
}
}
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
LogLevel2[LogLevel2["Error"] = 0] = "Error";
LogLevel2[LogLevel2["Warn"] = 1] = "Warn";
LogLevel2[LogLevel2["Info"] = 2] = "Info";
LogLevel2[LogLevel2["Debug"] = 3] = "Debug";
return LogLevel2;
})(LogLevel || {});
const verbose = process.argv.includes("--verbose");
const logger = new Logger().setLevel(verbose ? 3 /* Debug */ : 2 /* Info */);
export {
logger
};
//# sourceMappingURL=Logger.js.map