ts-generator
Version:
The missing piece for fully typesafe Typescript apps
61 lines (60 loc) • 1.46 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
/* tslint:disable:no-console */
const chalk_1 = require("chalk");
const { gray, green, yellow, red } = chalk_1.default;
const loggerLvlToNumber = {
verbose: 2,
info: 1,
error: 0,
};
class ConsoleLogger {
constructor(name, lvl) {
this.name = name;
this.lvl = lvl;
}
prefix() {
return `${gray(this.name)}:`;
}
info(...args) {
if (loggerLvlToNumber["info"] <= loggerLvlToNumber[this.lvl]) {
console.info(this.prefix(), ...args);
}
}
verbose(...args) {
if (loggerLvlToNumber["verbose"] <= loggerLvlToNumber[this.lvl]) {
console.info(this.prefix(), ...args);
}
}
error(...args) {
if (loggerLvlToNumber["error"] <= loggerLvlToNumber[this.lvl]) {
console.error(this.prefix(), ...args.map((m) => red(m)));
}
}
warn(...args) {
console.info(this.prefix(), ...args.map((m) => yellow(m)));
}
accent(s) {
return green(s);
}
childLogger(name) {
return new ConsoleLogger(name, this.lvl);
}
}
exports.ConsoleLogger = ConsoleLogger;
class NoLogger {
constructor() {
this.lvl = "error";
}
info() { }
verbose() { }
error() { }
warn() { }
accent(s) {
return s;
}
childLogger() {
return new NoLogger();
}
}
exports.NoLogger = NoLogger;
;