@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
30 lines (28 loc) • 1.29 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');
let node_fs_promises = require("node:fs/promises");
let node_path = require("node:path");
//#region src/createType/createType.ts
const generateTypeScriptType = (dictionary) => {
return `/* eslint-disable */\nexport default ${JSON.stringify(dictionary, null, 2)} as const;\n`;
};
/**
* This function generates a TypeScript type definition from a JSON object
*/
const createTypes = async (dictionaries, configuration) => {
const { system } = configuration;
const { typesDir } = system;
await (0, node_fs_promises.mkdir)(typesDir, { recursive: true });
return (await require_utils_parallelize.parallelize(dictionaries, async (dictionary) => {
if (!dictionary.key) return;
const typeDefinition = generateTypeScriptType(dictionary);
const outputPath = (0, node_path.resolve)(typesDir, `${dictionary.key}.ts`);
await (0, node_fs_promises.writeFile)(outputPath, typeDefinition);
return outputPath;
})).filter(Boolean);
};
//#endregion
exports.createTypes = createTypes;
exports.generateTypeScriptType = generateTypeScriptType;
//# sourceMappingURL=createType.cjs.map