UNPKG

@intlayer/chokidar

Version:

Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.

43 lines (41 loc) 1.81 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const require_runtime = require('./_virtual/_rolldown/runtime.cjs'); let node_fs_promises = require("node:fs/promises"); let fast_glob = require("fast-glob"); fast_glob = require_runtime.__toESM(fast_glob); let _intlayer_config_utils = require("@intlayer/config/utils"); //#region src/listDictionariesPath.ts /** * List all dictionaries absolute paths in the project * @param configuration - The configuration object * @returns An array of dictionary paths */ const listDictionaries = async (configuration) => { const { fileExtensions, contentDir, excludedPath } = configuration.content; const filePromises = fileExtensions.flatMap((ext) => contentDir.map((dir) => `${(0, _intlayer_config_utils.normalizePath)(dir)}/**/*${ext}`.replace("//", "/"))).map(async (pattern) => { const magicIndex = pattern.search(/[*?{}(]/); const basePattern = magicIndex > -1 ? pattern.slice(0, magicIndex) : pattern; return (0, fast_glob.default)(pattern, { ignore: excludedPath.filter((excludePattern) => { const cleanName = excludePattern.replace(/\*\*/g, "").replace(/\//g, ""); if (cleanName && basePattern.includes(`/${cleanName}/`)) return false; return true; }), absolute: true, dot: true }); }); const filesArrays = await Promise.all(filePromises); return Array.from(new Set(filesArrays.flat())); }; const listDictionariesWithStats = async (configuration) => { const files = await listDictionaries(configuration); return Promise.all(files.map(async (file) => ({ path: file, stats: await (0, node_fs_promises.stat)(file) }))); }; //#endregion exports.listDictionaries = listDictionaries; exports.listDictionariesWithStats = listDictionariesWithStats; //# sourceMappingURL=listDictionariesPath.cjs.map