UNPKG

@intlayer/chokidar

Version:

Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.

35 lines 1.53 kB
import { getConfiguration } from "@intlayer/config"; import { mkdir, writeFile } from "fs/promises"; import { resolve } from "path"; import { mergeDictionaries } from "../../../mergeDictionaries.mjs"; import { processPerLocaleDictionary } from "../../../processPerLocaleDictionary.mjs"; import { formatDictionaryText } from "./formatDictionaryText.mjs"; const writeMergedDictionaries = async (groupedDictionaries, configuration = getConfiguration()) => { const { dictionariesDir } = configuration.content; await mkdir(resolve(dictionariesDir), { recursive: true }); let resultDictionariesPaths = {}; for await (const [key, dictionariesEntry] of Object.entries( groupedDictionaries )) { if (key === "undefined") continue; const multiLocaleDictionaries = dictionariesEntry.dictionaries.map( (dictionary) => processPerLocaleDictionary(dictionary) ); const mergedDictionary = mergeDictionaries(multiLocaleDictionaries); const contentString = formatDictionaryText(mergedDictionary); const outputFileName = `${key}.json`; const resultFilePath = resolve(dictionariesDir, outputFileName); await writeFile(resultFilePath, contentString, "utf8").catch((err) => { console.error(`Error creating merged ${outputFileName}:`, err); }); resultDictionariesPaths[key] = { dictionaryPath: resultFilePath, dictionary: mergedDictionary }; } return resultDictionariesPaths; }; export { writeMergedDictionaries }; //# sourceMappingURL=writeMergedDictionary.mjs.map