UNPKG

single-source-of-truth

Version:
18 lines 890 B
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