UNPKG

@lingui/cli

Version:

Lingui CLI to extract messages, compile catalogs, and manage translation workflows

51 lines (50 loc) 1.52 kB
import { mergeExtractedMessage } from "../api/catalog/extractFromFiles.js"; import { writeCatalogs, writeTemplate } from "./writeCatalogs.js"; import extract from "../api/extractors/index.js"; async function extractFromBundle(filename, linguiConfig) { const messages = {}; let success; try { await extract(filename, (msg) => { mergeExtractedMessage(msg, messages, linguiConfig); }, linguiConfig); success = true; } catch (e) { console.error(`Cannot process file ${filename} ${e.message}`); console.error(e.stack); success = false; } return { success, messages }; } export async function extractFromBundleAndWrite(params) { const { linguiConfig, entryPoint, format, outputPattern, locales, overwrite, clean, template, } = params; const { messages, success } = await extractFromBundle(params.bundleFile, params.linguiConfig); if (!success) { return { success: false }; } let stat; if (template) { stat = (await writeTemplate({ linguiConfig, clean, format, messages, entryPoint, outputPattern, })).statMessage; } else { stat = (await writeCatalogs({ locales, linguiConfig, clean, format, messages, entryPoint, overwrite, outputPattern, })).statMessage; } return { success: true, stat }; }