UNPKG

@stryke/prisma-trpc-generator

Version:

A fork of the prisma-trpc-generator code to work in ESM with Prisma v6.

57 lines (55 loc) 1.74 kB
import { checkModelHasModelRelation } from "./model-helpers.mjs"; //#region src/zod/modelArgs-helpers.ts function addMissingInputObjectTypesForModelArgs(inputObjectTypes, models, isGenerateSelect, isGenerateInclude) { const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude); for (const modelArgsInputObjectType of modelArgsInputObjectTypes) inputObjectTypes.push(modelArgsInputObjectType); } function generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude) { const modelArgsInputObjectTypes = []; for (const model of models) { const { name: modelName } = model; const fields = []; if (isGenerateSelect) { const selectField = { name: "select", isRequired: false, isNullable: false, inputTypes: [{ isList: false, type: `${modelName}Select`, location: "inputObjectTypes", namespace: "prisma" }] }; fields.push(selectField); } const hasRelationToAnotherModel = checkModelHasModelRelation(model); if (isGenerateInclude && hasRelationToAnotherModel) { const includeField = { name: "include", isRequired: false, isNullable: false, inputTypes: [{ isList: false, type: `${modelName}Include`, location: "inputObjectTypes", namespace: "prisma" }] }; fields.push(includeField); } const modelArgsInputObjectType = { name: `${modelName}DefaultArgs`, constraints: { maxNumFields: null, minNumFields: null }, fields }; modelArgsInputObjectTypes.push(modelArgsInputObjectType); } return modelArgsInputObjectTypes; } //#endregion export { addMissingInputObjectTypesForModelArgs }; //# sourceMappingURL=modelArgs-helpers.mjs.map