UNPKG

@intlayer/chokidar

Version:

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

49 lines (47 loc) 2.41 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); const require_utils_parallelize = require('../utils/parallelize.cjs'); const require_writeJsonIfChanged = require('../writeJsonIfChanged.cjs'); let node_fs_promises = require("node:fs/promises"); let node_path = require("node:path"); let _intlayer_config_logger = require("@intlayer/config/logger"); let _intlayer_config_utils = require("@intlayer/config/utils"); let _intlayer_core_dictionaryManipulator = require("@intlayer/core/dictionaryManipulator"); //#region src/buildIntlayerDictionary/writeMergedDictionary.ts /** * Write the merged dictionaries to the dictionariesDir * @param groupedDictionaries - The grouped dictionaries * @param configuration - The configuration * @returns The merged dictionaries * * @example * ```ts * const unmergedDictionaries = await writeUnmergedDictionaries(dictionaries); * const finalDictionaries = await writeFinalDictionaries(unmergedDictionaries); * console.log(finalDictionaries); * * // .intlayer/dictionary/home.json * // { key: 'home', content: { ... } }, * ``` */ const writeMergedDictionaries = async (groupedDictionaries, configuration) => { const { dictionariesDir } = configuration.system; await (0, node_fs_promises.mkdir)((0, node_path.resolve)(dictionariesDir), { recursive: true }); const results = await require_utils_parallelize.parallelize(Object.entries(groupedDictionaries), async ([key, dictionariesEntry]) => { if (key === "undefined") return; const mergedDictionary = (0, _intlayer_core_dictionaryManipulator.mergeDictionaries)((0, _intlayer_core_dictionaryManipulator.normalizeDictionaries)(dictionariesEntry.dictionaries, configuration)); const resultFilePath = (0, node_path.resolve)(dictionariesDir, `${key}.json`); (0, _intlayer_config_utils.assertPathWithin)(resultFilePath, dictionariesDir); await require_writeJsonIfChanged.writeJsonIfChanged(resultFilePath, mergedDictionary).catch((err) => { console.error(`Error creating merged ${(0, _intlayer_config_logger.colorizePath)(resultFilePath)}:`, err); }); return [key, { dictionaryPath: resultFilePath, dictionary: mergedDictionary }]; }); return Object.fromEntries(results.filter(Boolean)); }; //#endregion exports.writeMergedDictionaries = writeMergedDictionaries; //# sourceMappingURL=writeMergedDictionary.cjs.map