gzipper
Version:
CLI for compressing files.
50 lines • 3.39 kB
JavaScript
import { LogLevel } from './LogLevel.enum.js';
import { getLogColor } from '../helpers.js';
export class Logger {
verbose = false;
color = false;
/**
* Initialize the logger.
*/
initialize(options) {
this.verbose = !!options.verbose;
this.color = getLogColor(options.color);
}
/**
* Colorize messages depends on the level and return a wrapper.
*/
logger(message, level) {
let colorfulMessage;
const prefix = 'gzipper';
level = !this.color ? LogLevel.DEBUG : level;
switch (level) {
case LogLevel.INFO:
colorfulMessage = `\x1b[30;46m${prefix}:\x1b[0m\x1b[36m %s\x1b[0m`;
break;
case LogLevel.ERROR:
colorfulMessage = `\x1b[30;41m${prefix}:\x1b[0m\x1b[31m %s\x1b[0m`;
break;
case LogLevel.WARNING:
colorfulMessage = `\x1b[30;43m${prefix}:\x1b[0m\x1b[33m %s\x1b[0m`;
break;
case LogLevel.SUCCESS:
colorfulMessage = `\x1b[30;42m${prefix}:\x1b[0m\x1b[32m %s\x1b[0m`;
break;
case LogLevel.DEBUG:
default:
colorfulMessage = `${prefix}: %s`;
break;
}
console.log(colorfulMessage, message);
}
/**
* Log message.
*/
log(message, level = LogLevel.DEBUG) {
const shouldLog = this.verbose || level === LogLevel.ERROR;
if (shouldLog) {
this.logger(message, level);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2dlci9Mb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUMsTUFBTSxPQUFPLE1BQU07SUFDVCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFdEI7O09BRUc7SUFDSCxVQUFVLENBQUMsT0FBbUQ7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTSxDQUFJLE9BQVUsRUFBRSxLQUFlO1FBQzNDLElBQUksZUFBdUIsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDekIsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTdDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixlQUFlLEdBQUcsY0FBYyxNQUFNLDRCQUE0QixDQUFDO2dCQUNuRSxNQUFNO1lBRVIsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsZUFBZSxHQUFHLGNBQWMsTUFBTSw0QkFBNEIsQ0FBQztnQkFDbkUsTUFBTTtZQUVSLEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQ25CLGVBQWUsR0FBRyxjQUFjLE1BQU0sNEJBQTRCLENBQUM7Z0JBQ25FLE1BQU07WUFFUixLQUFLLFFBQVEsQ0FBQyxPQUFPO2dCQUNuQixlQUFlLEdBQUcsY0FBYyxNQUFNLDRCQUE0QixDQUFDO2dCQUNuRSxNQUFNO1lBRVIsS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3BCO2dCQUNFLGVBQWUsR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDO2dCQUNsQyxNQUFNO1FBQ1YsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBSSxPQUFVLEVBQUUsUUFBa0IsUUFBUSxDQUFDLEtBQUs7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQztRQUUzRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7Q0FDRiJ9