tg-bot-reminder/node_modules/ts-node-dev/lib/log.js
2023-08-13 16:48:04 +03:00

51 lines
1.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeLog = void 0;
var util = require('util');
var colors = {
info: '36',
error: '31;1',
warn: '33',
debug: '90',
};
var formatDate = function (date) {
return [date.getHours(), date.getMinutes(), date.getSeconds()]
.map(function (n) { return n.toString().padStart(2, '0'); })
.join(':');
};
/**
* Logs a message to the console. The level is displayed in ANSI colors,
* either bright red in case of an error or green otherwise.
*/
exports.makeLog = function (cfg) {
function log(msg, level) {
if (cfg.quiet && level === 'info')
return;
if (cfg.timestamp)
msg = color(formatDate(new Date()), '30;1') + ' ' + msg;
var c = colors[level.toLowerCase()] || '32';
console.log('[' + color(level.toUpperCase(), c) + '] ' + msg);
}
function color(s, c) {
if (process.stdout.isTTY) {
return '\x1B[' + c + 'm' + s + '\x1B[0m';
}
return s;
}
log.debug = function () {
if (!cfg.debug)
return;
log(util.format.apply(util, arguments), 'debug');
};
log.info = function () {
log(util.format.apply(util, arguments), 'info');
};
log.warn = function () {
log(util.format.apply(util, arguments), 'warn');
};
log.error = function () {
log(util.format.apply(util, arguments), 'error');
};
return log;
};