UNPKG

@logistically/i18n-cli

Version:

Enterprise-grade CLI tool for extracting and managing translations in Logistically microservices

39 lines 1.68 kB
#!/usr/bin/env node "use strict"; 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