UNPKG

@intlayer/chokidar

Version:

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

62 lines 2.16 kB
import { getConfiguration } from "@intlayer/config"; import { existsSync, mkdirSync, writeFileSync } from "fs"; import { resolve } from "path"; import { getBuiltDictionariesPath } from "../../getBuiltDictionariesPath.mjs"; import { getBuiltDynamicDictionariesPath } from "../../getBuiltDynamicDictionariesPath.mjs"; import { getBuiltUnmergedDictionariesPath } from "../../getBuiltUnmergedDictionariesPath.mjs"; import { generateDictionaryListContent } from "./generateDictionaryListContent.mjs"; const filterDictionaries = (paths, keys) => { if (!keys) return paths; return paths.filter( (path) => keys.some((key) => path.endsWith(`${key}.json`)) ); }; const writeDictionaryFiles = (paths, fileName, format, configuration = getConfiguration()) => { const content = generateDictionaryListContent(paths, format, configuration); const extension = format === "cjs" ? "cjs" : "mjs"; const { mainDir } = configuration.content; writeFileSync(resolve(mainDir, `${fileName}.${extension}`), content); }; const createDictionaryEntryPoint = (configuration = getConfiguration(), dictionariesKeys, formats = ["cjs", "esm"]) => { const { mainDir } = configuration.content; if (!existsSync(mainDir)) { mkdirSync(mainDir, { recursive: true }); } const dictionariesPath = filterDictionaries( getBuiltDictionariesPath(configuration), dictionariesKeys ); for (const format of formats) { writeDictionaryFiles( dictionariesPath, "dictionaries", format, configuration ); } const unmergedDictionariesPath = getBuiltUnmergedDictionariesPath(configuration); for (const format of formats) { writeDictionaryFiles( unmergedDictionariesPath, "unmerged_dictionaries", format, configuration ); } for (const format of formats) { const dynamicDictionariesPathCJS = getBuiltDynamicDictionariesPath( configuration, format ); writeDictionaryFiles( dynamicDictionariesPathCJS, "dynamic_dictionaries", format, configuration ); } }; export { createDictionaryEntryPoint }; //# sourceMappingURL=createDictionaryEntryPoint.mjs.map