@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
50 lines (48 loc) • 3.32 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 _intlayer_config_logger = require("@intlayer/config/logger");
//#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));
if (hasRebuilt || hasNewDictionaries) {
if (!hasRebuilt) {
await require_createDictionaryEntryPoint_createDictionaryEntryPoint.createDictionaryEntryPoint(config, { excludeKeys });
appLogger("Dictionary list built", { isVerbose: true });
}
}
await require_createType_createType.createTypes(updatedDictionaries.map((dictionary) => dictionary.dictionary), config);
appLogger("TypeScript types built", { isVerbose: true });
if (hasNewDictionaries) {
await require_createType_createModuleAugmentation.createModuleAugmentation(config);
appLogger("Module augmentation built", { isVerbose: true });
}
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