@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
62 lines • 2.16 kB
JavaScript
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