@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
36 lines (34 loc) • 1.85 kB
JavaScript
import { cleanRemovedContentDeclaration } from "./cleanRemovedContentDeclaration.mjs";
import { formatPath } from "./utils/formatter.mjs";
import { buildDictionary } from "./buildIntlayerDictionary/buildIntlayerDictionary.mjs";
import { createModuleAugmentation } from "./createType/createModuleAugmentation.mjs";
import { createTypes } from "./createType/createType.mjs";
import { loadLocalDictionaries } from "./loadDictionaries/loadLocalDictionaries.mjs";
import { listDictionaries } from "./listDictionariesPath.mjs";
import { normalize } from "node:path";
import { getAppLogger } from "@intlayer/config/logger";
//#region src/handleUnlinkedContentDeclarationFile.ts
const handleUnlinkedContentDeclarationFile = async (filePath, config) => {
const appLogger = getAppLogger(config);
appLogger(`Unlinked detected: ${formatPath(filePath)}`, { isVerbose: true });
const localeDictionaries = await loadLocalDictionaries((await listDictionaries(config)).filter((file) => normalize(file) !== normalize(filePath)), config);
await cleanRemovedContentDeclaration(filePath, [], config);
const dictionariesOutput = await buildDictionary(localeDictionaries, config);
await createTypes(Object.values(dictionariesOutput?.mergedDictionaries ?? {}).map((dictionary) => dictionary.dictionary), config);
appLogger("Dictionaries rebuilt", { isVerbose: true });
await 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
export { handleUnlinkedContentDeclarationFile };
//# sourceMappingURL=handleUnlinkedContentDeclarationFile.mjs.map