UNPKG

@intlayer/chokidar

Version:

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

41 lines 1.51 kB
import { getConfiguration } from "@intlayer/config"; import { mkdir, writeFile } from "fs/promises"; import { resolve } from "path"; import { formatDictionaryText } from "./formatDictionaryText.mjs"; const groupDictionariesByKey = (dictionaries) => { return dictionaries.reduce( (acc, dictionary) => { const key = dictionary.key; if (!acc[key]) { acc[key] = []; } acc[key].push(dictionary); return acc; }, {} ); }; const writeUnmergedDictionaries = async (dictionaries, configuration = getConfiguration()) => { const { unmergedDictionariesDir } = configuration.content; await mkdir(resolve(unmergedDictionariesDir), { recursive: true }); const groupedDictionaries = groupDictionariesByKey(dictionaries); let resultDictionariesPaths = {}; for await (const [key, dictionaries2] of Object.entries(groupedDictionaries)) { if (key === "undefined") continue; const contentString = formatDictionaryText(dictionaries2); const outputFileName = `${key}.json`; const unmergedFilePath = resolve(unmergedDictionariesDir, outputFileName); await writeFile(unmergedFilePath, contentString, "utf8").catch((err) => { console.error(`Error creating unmerged ${outputFileName}:`, err); }); resultDictionariesPaths[key] = { dictionaryPath: unmergedFilePath, dictionaries: dictionaries2 }; } return resultDictionariesPaths; }; export { writeUnmergedDictionaries }; //# sourceMappingURL=writeUnmergedDictionary.mjs.map