UNPKG

makit

Version:

Make in JavaScript done right!

82 lines (81 loc) 2.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = exports.hlTarget = exports.LogLevel = void 0; const chalk_1 = __importDefault(require("chalk")); var LogLevel; (function (LogLevel) { LogLevel[LogLevel["error"] = 0] = "error"; LogLevel[LogLevel["warning"] = 1] = "warning"; LogLevel[LogLevel["info"] = 2] = "info"; LogLevel[LogLevel["verbose"] = 3] = "verbose"; LogLevel[LogLevel["debug"] = 4] = "debug"; LogLevel[LogLevel["default"] = 2] = "default"; })(LogLevel = exports.LogLevel || (exports.LogLevel = {})); function hlTarget(str) { return chalk_1.default['cyan'](str); } exports.hlTarget = hlTarget; class Logger { constructor(logLevel = LogLevel.default) { this.logLevel = logLevel; this.suspended = false; } static getOrCreate(logLevel) { if (!Logger.instance) { Logger.instance = new Logger(logLevel); } logLevel !== undefined && Logger.instance.setLevel(logLevel); return Logger.instance; } resume() { this.suspended = false; } suspend() { this.suspended = true; } setLevel(level) { if (level < LogLevel.error || level > LogLevel.debug) throw new Error('invalid loglevel'); this.logLevel = level; } getLevel() { return this.logLevel; } error(title, ...args) { if (this.suspended || this.logLevel < LogLevel.error) return; this.doLog(chalk_1.default.red(title), args); } warning(title, ...args) { if (this.suspended || this.logLevel < LogLevel.warning) return; this.doLog(chalk_1.default.yellow(title), args); } info(title, ...args) { if (this.suspended || this.logLevel < LogLevel.info) return; this.doLog(chalk_1.default.cyan(title), args); } infoStr(str) { if (this.suspended || this.logLevel < LogLevel.info) return; process.stdout.write(str); } verbose(title, ...args) { if (this.suspended || this.logLevel < LogLevel.verbose) return; this.doLog(chalk_1.default.gray(title), args); } debug(title, ...args) { if (this.suspended || this.logLevel < LogLevel.debug) return; this.doLog(chalk_1.default.magenta(title), args); } doLog(title, args) { console.log(chalk_1.default.inverse(title), ...args.map(x => typeof x === 'function' ? x() : x)); } } exports.Logger = Logger;