@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
71 lines (69 loc) • 4.04 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_utils_parallelize = require('../utils/parallelize.cjs');
const require_writeFileIfChanged = require('../writeFileIfChanged.cjs');
const require_createDictionaryEntryPoint_generateDictionaryListContent = require('./generateDictionaryListContent.cjs');
const require_createDictionaryEntryPoint_getBuiltDictionariesPath = require('./getBuiltDictionariesPath.cjs');
const require_createDictionaryEntryPoint_getBuiltDynamicDictionariesPath = require('./getBuiltDynamicDictionariesPath.cjs');
const require_createDictionaryEntryPoint_getBuiltFetchDictionariesPath = require('./getBuiltFetchDictionariesPath.cjs');
const require_createDictionaryEntryPoint_getBuiltRemoteDictionariesPath = require('./getBuiltRemoteDictionariesPath.cjs');
const require_createDictionaryEntryPoint_getBuiltUnmergedDictionariesPath = require('./getBuiltUnmergedDictionariesPath.cjs');
let node_fs_promises = require("node:fs/promises");
let node_path = require("node:path");
let _intlayer_config_node = require("@intlayer/config/node");
//#region src/createDictionaryEntryPoint/createDictionaryEntryPoint.ts
const writeDictionaryFiles = async (paths, fileName, importType, functionName, format, configuration = (0, _intlayer_config_node.getConfiguration)()) => {
const content = require_createDictionaryEntryPoint_generateDictionaryListContent.generateDictionaryListContent(await paths, functionName, importType, format, configuration);
const extension = format === "cjs" ? "cjs" : "mjs";
const { mainDir } = configuration.system;
await require_writeFileIfChanged.writeFileIfChanged((0, node_path.resolve)(mainDir, `${fileName}.${extension}`), content);
};
/**
* This function generates a list of dictionaries in the main directory
*/
const createDictionaryEntryPoint = async (configuration = (0, _intlayer_config_node.getConfiguration)(), options = {}) => {
const { formats, excludeKeys = [] } = options;
const outputFormats = formats ?? configuration.build.outputFormat;
const { mainDir } = configuration.system;
await (0, node_fs_promises.mkdir)(mainDir, { recursive: true });
await require_utils_parallelize.parallelize([
...outputFormats.map((format) => ({
paths: require_createDictionaryEntryPoint_getBuiltDictionariesPath.getBuiltDictionariesPath(configuration, excludeKeys),
importType: "json",
functionName: "getDictionaries",
fileName: "dictionaries",
format
})),
...outputFormats.map((format) => ({
paths: require_createDictionaryEntryPoint_getBuiltUnmergedDictionariesPath.getBuiltUnmergedDictionariesPath(configuration, excludeKeys),
importType: "json",
functionName: "getUnmergedDictionaries",
fileName: "unmerged_dictionaries",
format
})),
...outputFormats.map((format) => ({
paths: require_createDictionaryEntryPoint_getBuiltDynamicDictionariesPath.getBuiltDynamicDictionariesPath(configuration, format, excludeKeys),
importType: "javascript",
functionName: "getDynamicDictionaries",
fileName: "dynamic_dictionaries",
format
})),
...outputFormats.map((format) => ({
paths: require_createDictionaryEntryPoint_getBuiltFetchDictionariesPath.getBuiltFetchDictionariesPath(configuration, format, excludeKeys),
importType: "javascript",
functionName: "getFetchDictionaries",
fileName: "fetch_dictionaries",
format
})),
...outputFormats.map((format) => ({
paths: require_createDictionaryEntryPoint_getBuiltRemoteDictionariesPath.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
exports.createDictionaryEntryPoint = createDictionaryEntryPoint;
//# sourceMappingURL=createDictionaryEntryPoint.cjs.map