UNPKG

@ladislaogarcia/prisma-zod-generator

Version:

Prisma 2+ generator to emit Zod schemas from your Prisma schema

70 lines 2.86 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.addMissingInputObjectTypesForModelArgs = void 0; const getPrismaVersion_1 = __importDefault(require("../utils/getPrismaVersion")); const model_helpers_1 = require("./model-helpers"); function addMissingInputObjectTypesForModelArgs(inputObjectTypes, models, isGenerateSelect, isGenerateInclude) { const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude); for (const modelArgsInputObjectType of modelArgsInputObjectTypes) { inputObjectTypes.push(modelArgsInputObjectType); } } exports.addMissingInputObjectTypesForModelArgs = addMissingInputObjectTypesForModelArgs; function getModelArgsTypeName(modelName) { const modelArgsPrepend = getPrismaVersion_1.default && getPrismaVersion_1.default >= 6 ? 'Default' : ''; return `${modelName}${modelArgsPrepend}Args`; } 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 = (0, model_helpers_1.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: getModelArgsTypeName(modelName), constraints: { maxNumFields: null, minNumFields: null, }, fields, }; modelArgsInputObjectTypes.push(modelArgsInputObjectType); } return modelArgsInputObjectTypes; } //# sourceMappingURL=modelArgs-helpers.js.map