single-source-of-truth
Version:
Use Zod schemas to your generate Prisma schema
18 lines • 890 B
JavaScript
import { mkdir as makeDirectory, writeFile } from 'node:fs/promises';
import { dirname } from 'node:path';
import { fileURLToPath, pathToFileURL } from 'node:url';
import logger from "../logger.js";
import { buildSchema } from './builders/schema.js';
export async function build(registry, relativePath) {
const url = pathToFileURL(relativePath).toString();
const path = fileURLToPath(url);
const enums = registry.enums.getAll();
const models = registry.models.getAll();
const schema = buildSchema({ enums, models });
const count = (c, w) => `${c} ${w}${c !== 1 ? 's' : ''}`;
logger.info(`Writing prisma schema with ${count(enums.length, 'enum')} and` +
` ${count(models.length, 'model')} models to '${relativePath}'...`);
await makeDirectory(dirname(path), { recursive: true });
await writeFile(path, schema);
}
//# sourceMappingURL=config.js.map