@stringsync/vexml
Version:
MusicXML to Vexflow
39 lines (38 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConsoleLogger = void 0;
class ConsoleLogger {
levels;
constructor(levels = ['debug', 'info', 'warn', 'error']) {
this.levels = levels;
}
debug(message, meta) {
if (this.levels.includes('debug')) {
console.debug(this.toCompleteMessage(message, meta));
}
}
info(message, meta) {
if (this.levels.includes('info')) {
console.log(this.toCompleteMessage(message, meta));
}
}
warn(message, meta) {
if (this.levels.includes('warn')) {
console.warn(this.toCompleteMessage(message, meta));
}
}
error(message, meta) {
if (this.levels.includes('error')) {
console.error(this.toCompleteMessage(message, meta));
}
}
toCompleteMessage(message, meta) {
if (meta) {
return `[vexml] ${message} ${Object.entries(meta)
.map(([key, value]) => `${key}=${value}`)
.join(' ')}`;
}
return `[vexml] ${message}`;
}
}
exports.ConsoleLogger = ConsoleLogger;