i18ntk
Version:
đ The fastest i18n toolkit with 97% performance boost! Zero-dependency, enterprise-grade internationalization for React, Vue, Angular, Python, Java, PHP & more. Features PIN protection, auto framework detection, 7+ UI languages, and comprehensive transla
65 lines (56 loc) âĸ 1.76 kB
JavaScript
const colors = require('./colors-new');
const { envManager } = require('./env-manager');
// Enhanced logger with TTY detection and proper stream handling
const logger = {
// Basic log function with color support
log: (message, color = '') => {
const output = color ? color(message) : message;
if (process.stdout.isTTY) {
process.stdout.write(output + '\n');
} else {
console.log(output);
}
},
// Error logging (goes to stderr)
error: (message) => {
const output = `â ${message}`;
if (process.stderr.isTTY) {
process.stderr.write(colors.bright(colors.red(output)) + '\n');
} else {
console.error(output);
}
},
// Success logging
success: (message) => {
const output = `â
${message}`;
logger.log(output, colors.green);
},
// Warning logging (goes to stderr)
warn: (message) => {
const output = `â ī¸ ${message}`;
if (process.stderr.isTTY) {
process.stderr.write(colors.bright(colors.yellow(output)) + '\n');
} else {
console.warn(output);
}
},
// Info logging
info: (message) => {
const output = `âšī¸ ${message}`;
logger.log(output, colors.blue);
},
// Debug logging (only when DEBUG env var is set or log level is debug)
debug: (message) => {
const logLevel = envManager.get('I18NTK_LOG_LEVEL');
const debugEnabled = process.env.DEBUG || logLevel === 'debug';
if (debugEnabled) {
const output = `[DEBUG] ${message}`;
if (process.stderr.isTTY) {
process.stderr.write(colors.gray(output) + '\n');
} else {
console.debug(output);
}
}
}
};
module.exports = { colors, logger };