UNPKG

@diplodoc/transform

Version:

A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML

54 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.log = exports.LogLevels = void 0; const chalk_1 = require("chalk"); var LogLevels; (function (LogLevels) { LogLevels["INFO"] = "info"; LogLevels["WARN"] = "warn"; LogLevels["ERROR"] = "error"; LogLevels["DISABLED"] = "disabled"; })(LogLevels = exports.LogLevels || (exports.LogLevels = {})); const problems = { [LogLevels.INFO]: [], [LogLevels.WARN]: [], [LogLevels.ERROR]: [], [LogLevels.DISABLED]: [], }; function createLogger(type) { const formatter = { [LogLevels.INFO]: (msg) => `${(0, chalk_1.green)('INFO')} ${msg}`, [LogLevels.WARN]: (msg) => `${(0, chalk_1.yellow)('WARN')} ${msg}`, [LogLevels.ERROR]: (msg) => `${(0, chalk_1.red)('ERR')} ${msg}`, }; return function log(msg) { const problem = formatter[type](msg); if (!problems[type].includes(problem)) { problems[type].push(problem); } }; } exports.log = { [LogLevels.INFO]: createLogger(LogLevels.INFO), [LogLevels.WARN]: createLogger(LogLevels.WARN), [LogLevels.ERROR]: createLogger(LogLevels.ERROR), LogLevels, get: () => problems, add: (logs) => { problems[LogLevels.INFO] = problems[LogLevels.INFO].concat(logs[LogLevels.INFO]); problems[LogLevels.WARN] = problems[LogLevels.WARN].concat(logs[LogLevels.WARN]); problems[LogLevels.ERROR] = problems[LogLevels.ERROR].concat(logs[LogLevels.ERROR]); }, clear: () => { problems[LogLevels.INFO] = []; problems[LogLevels.WARN] = []; problems[LogLevels.ERROR] = []; }, isEmpty: () => { return !(problems[LogLevels.INFO].length || problems[LogLevels.WARN].length || problems[LogLevels.ERROR].length); }, }; exports.default = exports.log; //# sourceMappingURL=log.js.map