@logistically/i18n-cli
Version:
Enterprise-grade CLI tool for extracting and managing translations in Logistically microservices
39 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateTranslationFiles = generateTranslationFiles;
exports.createGenerateCommand = createGenerateCommand;
const commander_1 = require("commander");
const generator_1 = require("../utils/generator");
const logger_1 = require("../utils/logger");
const logger = logger_1.Logger.getInstance();
// Extracted business logic for better testability
async function generateTranslationFiles(options) {
const generator = new generator_1.TranslationGenerator();
const languages = options.languages.split(',').map((lang) => lang.trim());
await generator.generate({
input: options.input,
languages,
template: options.template,
verbose: options.verbose
});
}
function createGenerateCommand() {
const command = new commander_1.Command('generate')
.description('Generate translation files for each service')
.option('-i, --input <file>', 'Input translation keys file', 'translation-keys.json')
.option('-l, --languages <languages>', 'Languages to generate (comma-separated)', 'en,fr,es,de,ar')
.option('--no-template', 'Skip generating template files for other languages')
.option('-v, --verbose', 'Enable verbose output')
.action(async (options) => {
try {
await generateTranslationFiles(options);
}
catch (error) {
logger.error(`Generation failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
// Handle error gracefully without exiting
}
});
return command;
}
//# sourceMappingURL=generate.js.map