@morfeo/compiler
Version:

63 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = void 0;
const colors = {
black: '\x1b[30m',
red: '\x1b[31m',
green: '\x1b[32m',
yellow: '\x1b[33m',
cyan: '\x1b[36m',
white: '\x1b[37m',
bgBlue: '\x1b[44m',
reset: '\x1b[0m',
};
function log(options) {
const prefix = [
colors.bgBlue,
'Ⓜ️ morfeo',
colors.reset,
colors[options.color || 'cyan'],
options.label,
colors.reset,
];
console[options.type]([...prefix, options.message].filter(Boolean).join(' '));
}
function createLogger() {
const timers = new Map();
function debug(message) {
log({ message, label: 'debug', type: 'debug', color: 'cyan' });
}
function error(message) {
log({ message, label: 'error', type: 'error', color: 'red' });
}
function success(message) {
log({ message, label: 'success', type: 'debug', color: 'green' });
}
function warning(message) {
log({ message, label: 'warning', type: 'debug', color: 'yellow' });
}
function startTimer(id) {
if (!timers.has(id)) {
timers.set(id, Date.now());
}
}
function endTimer(id) {
const timer = timers.get(id);
if (!timer) {
return;
}
const diff = Number((Date.now() - timer) / 1000).toFixed(2);
timers.delete(id);
return diff;
}
return {
debug,
error,
warning,
success,
endTimer,
startTimer,
};
}
exports.logger = createLogger();
//# sourceMappingURL=logger.js.map