UNPKG

@intlayer/chokidar

Version:

Scans and builds Intlayer declaration files into dictionaries based on Intlayer configuration.

56 lines (54 loc) 3.75 kB
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