UNPKG

@stryke/prisma-trpc-generator

Version:

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

56 lines (54 loc) 1.74 kB
const require_model_helpers = require('./model-helpers.cjs'); //#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 = require_model_helpers.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 exports.addMissingInputObjectTypesForModelArgs = addMissingInputObjectTypesForModelArgs;