UNPKG

@intlayer/chokidar

Version:

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

69 lines (67 loc) 3.08 kB
import { parallelize } from "../utils/parallelize.mjs"; import { writeFileIfChanged } from "../writeFileIfChanged.mjs"; import { generateDictionaryListContent } from "./generateDictionaryListContent.mjs"; import { getBuiltDictionariesPath } from "./getBuiltDictionariesPath.mjs"; import { getBuiltDynamicDictionariesPath } from "./getBuiltDynamicDictionariesPath.mjs"; import { getBuiltFetchDictionariesPath } from "./getBuiltFetchDictionariesPath.mjs"; import { getBuiltRemoteDictionariesPath } from "./getBuiltRemoteDictionariesPath.mjs"; import { getBuiltUnmergedDictionariesPath } from "./getBuiltUnmergedDictionariesPath.mjs"; import { mkdir } from "node:fs/promises"; import { resolve } from "node:path"; import { getConfiguration } from "@intlayer/config/node"; //#region src/createDictionaryEntryPoint/createDictionaryEntryPoint.ts const writeDictionaryFiles = async (paths, fileName, importType, functionName, format, configuration = getConfiguration()) => { const content = generateDictionaryListContent(await paths, functionName, importType, format, configuration); const extension = format === "cjs" ? "cjs" : "mjs"; const { mainDir } = configuration.system; await writeFileIfChanged(resolve(mainDir, `${fileName}.${extension}`), content); }; /** * This function generates a list of dictionaries in the main directory */ const createDictionaryEntryPoint = async (configuration = getConfiguration(), options = {}) => { const { formats, excludeKeys = [] } = options; const outputFormats = formats ?? configuration.build.outputFormat; const { mainDir } = configuration.system; await mkdir(mainDir, { recursive: true }); await parallelize([ ...outputFormats.map((format) => ({ paths: getBuiltDictionariesPath(configuration, excludeKeys), importType: "json", functionName: "getDictionaries", fileName: "dictionaries", format })), ...outputFormats.map((format) => ({ paths: getBuiltUnmergedDictionariesPath(configuration, excludeKeys), importType: "json", functionName: "getUnmergedDictionaries", fileName: "unmerged_dictionaries", format })), ...outputFormats.map((format) => ({ paths: getBuiltDynamicDictionariesPath(configuration, format, excludeKeys), importType: "javascript", functionName: "getDynamicDictionaries", fileName: "dynamic_dictionaries", format })), ...outputFormats.map((format) => ({ paths: getBuiltFetchDictionariesPath(configuration, format, excludeKeys), importType: "javascript", functionName: "getFetchDictionaries", fileName: "fetch_dictionaries", format })), ...outputFormats.map((format) => ({ paths: getBuiltRemoteDictionariesPath(configuration, excludeKeys), importType: "json", functionName: "getRemoteDictionaries", fileName: "remote_dictionaries", format })) ], async ({ paths, fileName, format, functionName, importType }) => await writeDictionaryFiles(paths, fileName, importType, functionName, format, configuration)); }; //#endregion export { createDictionaryEntryPoint }; //# sourceMappingURL=createDictionaryEntryPoint.mjs.map