@intlayer/chokidar
Version:
Scans and builds Intlayer declaration files into dictionaries based on Intlayer configuration.
56 lines (54 loc) • 3.75 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
const require_createDictionaryEntryPoint_getBuiltDictionariesPath = require('./createDictionaryEntryPoint/getBuiltDictionariesPath.cjs');
const require_createDictionaryEntryPoint_createDictionaryEntryPoint = require('./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs');
const require_cleanRemovedContentDeclaration = require('./cleanRemovedContentDeclaration.cjs');
const require_utils_formatter = require('./utils/formatter.cjs');
const require_buildIntlayerDictionary_buildIntlayerDictionary = require('./buildIntlayerDictionary/buildIntlayerDictionary.cjs');
const require_createType_createModuleAugmentation = require('./createType/createModuleAugmentation.cjs');
const require_createType_createType = require('./createType/createType.cjs');
const require_loadDictionaries_loadLocalDictionaries = require('./loadDictionaries/loadLocalDictionaries.cjs');
let node_fs_promises = require("node:fs/promises");
let node_path = require("node:path");
let _intlayer_config_logger = require("@intlayer/config/logger");
let node_fs = require("node:fs");
//#region src/handleContentDeclarationFileChange.ts
const handleContentDeclarationFileChange = async (filePath, config) => {
const appLogger = (0, _intlayer_config_logger.getAppLogger)(config);
appLogger(`Change detected: ${require_utils_formatter.formatPath(filePath)}`, { isVerbose: true });
const allDictionariesPaths = await require_createDictionaryEntryPoint_getBuiltDictionariesPath.getBuiltDictionariesPath(config);
const localeDictionaries = await require_loadDictionaries_loadLocalDictionaries.loadLocalDictionaries(filePath, config);
const dictionariesOutput = await require_buildIntlayerDictionary_buildIntlayerDictionary.buildDictionary(localeDictionaries, config);
const updatedDictionaries = Object.values(dictionariesOutput?.mergedDictionaries ?? {});
const updatedDictionariesPaths = updatedDictionaries.map((dictionary) => dictionary.dictionaryPath);
const { excludeKeys, hasRebuilt } = await require_cleanRemovedContentDeclaration.cleanRemovedContentDeclaration(filePath, localeDictionaries.map((dictionary) => dictionary.key), config);
const hasNewDictionaries = updatedDictionariesPaths.some((updatedDictionaryPath) => !allDictionariesPaths.includes(updatedDictionaryPath));
await require_createType_createType.createTypes(updatedDictionaries.map((dictionary) => dictionary.dictionary), config);
appLogger("TypeScript types built", { isVerbose: true });
await require_createType_createModuleAugmentation.createModuleAugmentation(config);
appLogger("Module augmentation built", { isVerbose: true });
if (hasRebuilt || hasNewDictionaries) {
if (!hasRebuilt) {
await require_createDictionaryEntryPoint_createDictionaryEntryPoint.createDictionaryEntryPoint(config, { excludeKeys });
appLogger("Dictionary list built", { isVerbose: true });
}
}
const { mainDir } = config.system;
for (const extension of config.build.outputFormat) {
const entryPointPath = (0, node_path.join)(mainDir, `dictionaries.${extension}`);
if ((0, node_fs.existsSync)(entryPointPath)) await (0, node_fs_promises.writeFile)(entryPointPath, await (0, node_fs_promises.readFile)(entryPointPath, "utf-8"));
}
for await (const plugin of config.plugins ?? []) {
const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;
await plugin.afterBuild?.({
dictionaries: {
unmergedDictionaries,
mergedDictionaries
},
configuration: config
});
}
};
//#endregion
exports.handleContentDeclarationFileChange = handleContentDeclarationFileChange;
//# sourceMappingURL=handleContentDeclarationFileChange.cjs.map