@diplodoc/transform
Version:
A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML
54 lines • 1.89 kB
JavaScript
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
;