@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
27 lines (25 loc) • 1 kB
JavaScript
import { parallelize } from "../utils/parallelize.mjs";
import { mkdir, writeFile } from "node:fs/promises";
import { resolve } from "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 mkdir(typesDir, { recursive: true });
return (await parallelize(dictionaries, async (dictionary) => {
if (!dictionary.key) return;
const typeDefinition = generateTypeScriptType(dictionary);
const outputPath = resolve(typesDir, `${dictionary.key}.ts`);
await writeFile(outputPath, typeDefinition);
return outputPath;
})).filter(Boolean);
};
//#endregion
export { createTypes, generateTypeScriptType };
//# sourceMappingURL=createType.mjs.map