anyig
Version:
A powerful and extensible tool for generating ignore files for various development tools and environments
72 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
class Logger {
static colors = {
reset: '\x1b[0m',
bright: '\x1b[1m',
dim: '\x1b[2m',
red: '\x1b[31m',
green: '\x1b[32m',
yellow: '\x1b[33m',
blue: '\x1b[34m',
magenta: '\x1b[35m',
cyan: '\x1b[36m',
white: '\x1b[37m',
gray: '\x1b[90m'
};
static colorize(text, color) {
if (process.env['NO_COLOR'] || process.platform === 'win32') {
return text;
}
return `${Logger.colors[color]}${text}${Logger.colors.reset}`;
}
static info(message) {
console.log(Logger.colorize('ℹ', 'blue'), message);
}
static success(message) {
console.log(Logger.colorize('✓', 'green'), message);
}
static warning(message) {
console.log(Logger.colorize('⚠', 'yellow'), message);
}
static error(message) {
console.log(Logger.colorize('✗', 'red'), message);
}
static debug(message) {
if (process.env['DEBUG']) {
console.log(Logger.colorize('🐛', 'gray'), message);
}
}
static log(message) {
console.log(message);
}
static title(message) {
console.log(Logger.colorize(message, 'bright'));
}
static subtitle(message) {
console.log(Logger.colorize(message, 'cyan'));
}
static dim(message) {
console.log(Logger.colorize(message, 'dim'));
}
static newLine() {
console.log();
}
static separator() {
console.log(Logger.colorize('─'.repeat(50), 'gray'));
}
static progress(current, total, message) {
const percentage = Math.round((current / total) * 100);
const progressBar = '█'.repeat(Math.round(percentage / 5)) + '░'.repeat(20 - Math.round(percentage / 5));
const progressText = `[${progressBar}] ${percentage}% (${current}/${total})`;
if (message) {
console.log(Logger.colorize(progressText, 'cyan'), message);
}
else {
console.log(Logger.colorize(progressText, 'cyan'));
}
}
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map