@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
63 lines (61 loc) • 3.65 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_utils_readDictionariesFromDisk = require('../utils/readDictionariesFromDisk.cjs');
const require_buildIntlayerDictionary_writeDynamicDictionary = require('./writeDynamicDictionary.cjs');
const require_buildIntlayerDictionary_writeFetchDictionary = require('./writeFetchDictionary.cjs');
const require_buildIntlayerDictionary_writeMergedDictionary = require('./writeMergedDictionary.cjs');
const require_buildIntlayerDictionary_writeUnmergedDictionary = require('./writeUnmergedDictionary.cjs');
let _intlayer_config_defaultValues = require("@intlayer/config/defaultValues");
//#region src/buildIntlayerDictionary/buildIntlayerDictionary.ts
const defaultOptions = {
formats: _intlayer_config_defaultValues.OUTPUT_FORMAT,
importOtherDictionaries: true,
env: "dev"
};
/**
* This function transpile the bundled code to to make dictionaries as JSON files
*/
const buildDictionary = async (localDictionariesEntries, configuration, options) => {
const importMode = configuration?.build?.importMode ?? configuration?.dictionary?.importMode ?? _intlayer_config_defaultValues.IMPORT_MODE;
const { importOtherDictionaries, env, formats } = {
...defaultOptions,
...options
};
const unmergedDictionariesToUpdate = [...localDictionariesEntries];
if (importOtherDictionaries) {
const prevUnmergedDictionaries = require_utils_readDictionariesFromDisk.readDictionariesFromDisk(configuration.system.unmergedDictionariesDir);
for (const dictionaryToWrite of localDictionariesEntries) {
const allPrebuiltUnmergedDictionaries = prevUnmergedDictionaries[dictionaryToWrite.key];
if (allPrebuiltUnmergedDictionaries?.length > 0) {
const otherUnmergedDictionaries = allPrebuiltUnmergedDictionaries.filter((unmergedDictionary) => unmergedDictionary.localId !== dictionaryToWrite.localId);
unmergedDictionariesToUpdate.push(...otherUnmergedDictionaries);
}
}
}
const unmergedDictionaries = await require_buildIntlayerDictionary_writeUnmergedDictionary.writeUnmergedDictionaries(unmergedDictionariesToUpdate, configuration, env);
const mergedDictionaries = await require_buildIntlayerDictionary_writeMergedDictionary.writeMergedDictionaries(unmergedDictionaries, configuration);
const dictionariesToBuildDynamic = {};
const keysToBuildFetch = /* @__PURE__ */ new Set();
for (const [key, mergedResult] of Object.entries(mergedDictionaries)) {
const mode = mergedResult.dictionary.importMode ?? importMode;
if (mode === "dynamic" || mode === "fetch") dictionariesToBuildDynamic[key] = mergedResult;
if (mode === "fetch") keysToBuildFetch.add(key);
}
let dynamicDictionaries = null;
if (Object.keys(dictionariesToBuildDynamic).length > 0) dynamicDictionaries = await require_buildIntlayerDictionary_writeDynamicDictionary.writeDynamicDictionary(dictionariesToBuildDynamic, configuration, formats);
let fetchDictionaries = null;
if (dynamicDictionaries && keysToBuildFetch.size > 0) {
const dictionariesToBuildFetch = {};
for (const key of keysToBuildFetch) if (dynamicDictionaries[key]) dictionariesToBuildFetch[key] = dynamicDictionaries[key];
if (Object.keys(dictionariesToBuildFetch).length > 0) fetchDictionaries = await require_buildIntlayerDictionary_writeFetchDictionary.writeFetchDictionary(dictionariesToBuildFetch, configuration, formats);
}
return {
unmergedDictionaries,
mergedDictionaries,
dynamicDictionaries,
fetchDictionaries
};
};
//#endregion
exports.buildDictionary = buildDictionary;
//# sourceMappingURL=buildIntlayerDictionary.cjs.map