UNPKG

@tsed/prisma

Version:

Generate Ts.ED JsonSchema based on Prisma models

22 lines 1.16 kB
import path from "node:path"; import { getValue, toMap } from "@tsed/core"; import { DmmfModel } from "../domain/DmmfModel.js"; import { transformModelToClass } from "../transform/transformModelToClass.js"; import { generateDocuments } from "./generateDocuments.js"; import { generateOutputsBarrelFile } from "./generateOutputsBarrelFile.js"; export function generateModels(dmmf, project, baseDirPath) { const modelsMap = toMap(getValue(dmmf, "datamodel.models", []), "name"); const typesMap = toMap(getValue(dmmf, "datamodel.types", []), "name"); const models = DmmfModel.getModels(dmmf, modelsMap, typesMap); const modelsDirPath = path.resolve(baseDirPath, "models"); const modelsDirectory = project.createDirectory(modelsDirPath); const modelsIndex = modelsDirectory.createSourceFile(`index.ts`, undefined, { overwrite: true }); const exportedModels = generateDocuments(models, modelsDirectory, (model, sourceFile) => { return transformModelToClass(model, { dmmf, modelsMap }); }); generateOutputsBarrelFile(modelsIndex, exportedModels); } //# sourceMappingURL=generateModels.js.map