UNPKG

@stryke/prisma-trpc-generator

Version:

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

69 lines (67 loc) 2.14 kB
const require_model_helpers = require('./model-helpers.cjs'); //#region src/zod/include-helpers.ts function addMissingInputObjectTypesForInclude(inputObjectTypes, models, isGenerateSelect) { const generatedIncludeInputObjectTypes = generateModelIncludeInputObjectTypes(models, isGenerateSelect); for (const includeInputObjectType of generatedIncludeInputObjectTypes) inputObjectTypes.push(includeInputObjectType); } function generateModelIncludeInputObjectTypes(models, isGenerateSelect) { const modelIncludeInputObjectTypes = []; for (const model of models) { const { name: modelName, fields: modelFields } = model; const fields = []; for (const modelField of modelFields) { const { name: modelFieldName, isList, type } = modelField; if (require_model_helpers.checkIsModelRelationField(modelField)) { const field = { name: modelFieldName, isRequired: false, isNullable: false, inputTypes: [{ isList: false, type: "Boolean", location: "scalar" }, { isList: false, type: isList ? `${type}FindManyArgs` : `${type}DefaultArgs`, location: "inputObjectTypes", namespace: "prisma" }] }; fields.push(field); } } if (!require_model_helpers.checkModelHasModelRelation(model)) continue; if (require_model_helpers.checkModelHasManyModelRelation(model)) { const inputTypes = [{ isList: false, type: "Boolean", location: "scalar" }]; if (isGenerateSelect) inputTypes.push({ isList: false, type: `${modelName}CountOutputTypeDefaultArgs`, location: "inputObjectTypes", namespace: "prisma" }); const _countField = { name: "_count", isRequired: false, isNullable: false, inputTypes }; fields.push(_countField); } const modelIncludeInputObjectType = { name: `${modelName}Include`, constraints: { maxNumFields: null, minNumFields: null }, fields }; modelIncludeInputObjectTypes.push(modelIncludeInputObjectType); } return modelIncludeInputObjectTypes; } //#endregion exports.addMissingInputObjectTypesForInclude = addMissingInputObjectTypesForInclude;