i18n-llm-translate
Version:
Automatically translates namespace-based JSON translation files across multiple languages from any source language
115 lines (114 loc) • 4.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultLogger = exports.DefaultTranslateLogger = void 0;
// Simple color codes for terminal output
const 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',
gray: '\x1b[90m'
};
class DefaultTranslateLogger {
constructor(options = {}) {
var _a, _b, _c, _d;
this.options = {
debug: (_a = options.debug) !== null && _a !== void 0 ? _a : false,
verbose: (_b = options.verbose) !== null && _b !== void 0 ? _b : false,
prefix: (_c = options.prefix) !== null && _c !== void 0 ? _c : '🌐Translate',
enableColors: (_d = options.enableColors) !== null && _d !== void 0 ? _d : true
};
}
formatMessage(level, message, color) {
const timestamp = new Date().toLocaleTimeString('pl-PL', {
hour12: false,
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
const prefix = this.options.enableColors
? `${colors.cyan}${colors.bright}${this.options.prefix}${colors.reset}`
: this.options.prefix;
const levelFormatted = this.options.enableColors && color
? `${color}${colors.bright}[${level}]${colors.reset}`
: `[${level}]`;
const timeFormatted = this.options.enableColors
? `${colors.gray}[${timestamp}]${colors.reset}`
: `[${timestamp}]`;
return `${prefix} ${timeFormatted} ${levelFormatted} ${message}`;
}
formatEngineMessage(engineName, level, message, color) {
const timestamp = new Date().toLocaleTimeString('pl-PL', {
hour12: false,
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
const prefix = this.options.enableColors
? `${colors.cyan}${colors.bright}${this.options.prefix}${colors.reset}`
: this.options.prefix;
const engineFormatted = this.options.enableColors
? `${colors.magenta}${colors.bright}[${engineName}]${colors.reset}`
: `[${engineName}]`;
const levelFormatted = this.options.enableColors && color
? `${color}${colors.bright}[${level}]${colors.reset}`
: `[${level}]`;
const timeFormatted = this.options.enableColors
? `${colors.gray}[${timestamp}]${colors.reset}`
: `[${timestamp}]`;
return `${prefix} ${timeFormatted} ${engineFormatted} ${levelFormatted} ${message}`;
}
log(message, ...args) {
console.log(this.formatMessage('INFO', message, colors.blue), ...args);
}
info(message, ...args) {
console.log(this.formatMessage('INFO', message, colors.blue), ...args);
}
warn(message, ...args) {
console.log(this.formatMessage('WARN', message, colors.yellow), ...args);
}
error(message, ...args) {
console.log(this.formatMessage('ERROR', message, colors.red), ...args);
}
success(message, ...args) {
console.log(this.formatMessage('SUCCESS', message, colors.green), ...args);
}
debug(message, ...args) {
if (this.options.debug) {
console.log(this.formatMessage('DEBUG', message, colors.gray), ...args);
}
}
verbose(message, ...args) {
if (this.options.verbose) {
console.log(this.formatMessage('VERBOSE', message, colors.cyan), ...args);
}
}
engineLog(engineName, message, ...args) {
console.log(this.formatEngineMessage(engineName, 'INFO', message, colors.blue), ...args);
}
engineDebug(engineName, message, ...args) {
if (this.options.debug) {
console.log(this.formatEngineMessage(engineName, 'DEBUG', message, colors.gray), ...args);
}
}
engineVerbose(engineName, message, ...args) {
if (this.options.verbose) {
console.log(this.formatEngineMessage(engineName, 'VERBOSE', message, colors.cyan), ...args);
}
}
// Methods to update options
setDebug(debug) {
this.options.debug = debug;
}
setVerbose(verbose) {
this.options.verbose = verbose;
}
}
exports.DefaultTranslateLogger = DefaultTranslateLogger;
// Default logger instance that can be overridden
exports.defaultLogger = new DefaultTranslateLogger();