rollup-plugin-version-injector
Version:
A simple rollup.js plugin to inject your application's version number and/or today's date into your built js, html, and css files!
56 lines • 1.83 kB
JavaScript
import { default as chalk } from 'chalk';
export class VILogger {
constructor(logLevel, logger = console) {
this.DEFAULT_LOG_LEVEL = ['warn', 3];
this.logger = logger;
this.internalLog = [];
this.logMap = this.buildMap();
let logLevelNum = this.logMap.get(logLevel);
let configLogLevel = 'debug';
let configLogMessage = `setting logging level to "${logLevel}"`;
if (!logLevelNum) {
configLogMessage = `log level passed in was invalid ("${logLevel}"). setting log level to default ("${this.DEFAULT_LOG_LEVEL[0]}")`;
configLogLevel = 'warn';
logLevel = this.DEFAULT_LOG_LEVEL[0];
logLevelNum = this.DEFAULT_LOG_LEVEL[1];
}
this.logLevel = [logLevel, logLevelNum];
this[configLogLevel](configLogMessage);
}
log(...args) {
this.logIt('log', ...args);
}
debug(...args) {
this.logIt('debug', ...args);
}
info(...args) {
this.logIt('info', ...args);
}
warn(...args) {
this.logIt('warn', ...args);
}
error(...args) {
this.logIt('error', ...args);
}
logIt(level, ...args) {
let logLevel = this.logMap.get(level);
if (!logLevel) {
logLevel = this.logLevel[1];
level = this.logLevel[0];
}
if (logLevel >= this.logLevel[1]) {
this.logger[level](chalk.magenta.bold(' [VI]'), chalk.yellow(`[${level.padEnd(5)}]`), ...args);
}
this.internalLog.push({ level, log: args });
}
buildMap() {
const map = new Map();
map.set('debug', 1);
map.set('info', 2);
map.set('warn', 3);
map.set('error', 4);
map.set('log', 5);
return map;
}
}
//# sourceMappingURL=logger.js.map