@tsed/prisma
Version:
Generate Ts.ED JsonSchema based on Prisma models
22 lines • 1.16 kB
JavaScript
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