@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
35 lines • 1.53 kB
JavaScript
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