UNPKG

prisma-zod-generator

Version:

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

56 lines 3.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.addMissingInputObjectTypes = addMissingInputObjectTypes; exports.resolveAddMissingInputObjectTypeOptions = resolveAddMissingInputObjectTypeOptions; const transformer_1 = __importDefault(require("../transformer")); const aggregate_helpers_1 = require("./aggregate-helpers"); const include_helpers_1 = require("./include-helpers"); const modelArgs_helpers_1 = require("./modelArgs-helpers"); const mongodb_helpers_1 = require("./mongodb-helpers"); const select_helpers_1 = require("./select-helpers"); const whereUniqueInput_helpers_1 = require("./whereUniqueInput-helpers"); function addMissingInputObjectTypes(inputObjectTypes, outputObjectTypes, models, modelOperations, dataSourceProvider, options) { // TODO: remove once Prisma fix this issue: https://github.com/prisma/prisma/issues/14900 if (dataSourceProvider === 'mongodb') { (0, mongodb_helpers_1.addMissingInputObjectTypesForMongoDbRawOpsAndQueries)(modelOperations, outputObjectTypes, inputObjectTypes); } // Filter out fieldRefTypes from input types to avoid generating non-existent schemas filterFieldRefTypes(inputObjectTypes); (0, aggregate_helpers_1.addMissingInputObjectTypesForAggregate)(inputObjectTypes, outputObjectTypes); if (options.isGenerateSelect) { (0, select_helpers_1.addMissingInputObjectTypesForSelect)(inputObjectTypes, outputObjectTypes, models); transformer_1.default.setIsGenerateSelect(true); } if (options.isGenerateSelect || options.isGenerateInclude) { (0, modelArgs_helpers_1.addMissingInputObjectTypesForModelArgs)(inputObjectTypes, models, options.isGenerateSelect, options.isGenerateInclude); } if (options.isGenerateInclude) { (0, include_helpers_1.addMissingInputObjectTypesForInclude)(inputObjectTypes, models, options.isGenerateSelect); transformer_1.default.setIsGenerateInclude(true); } (0, whereUniqueInput_helpers_1.changeOptionalToRequiredFields)(inputObjectTypes); } function filterFieldRefTypes(inputObjectTypes) { // Filter out fieldRefTypes from input types following zod-prisma-types approach // This prevents generation of non-existent FieldRefInput schemas for (const inputType of inputObjectTypes) { const fields = inputType.fields; for (const field of fields) { if (field.inputTypes.some((inputType) => inputType.location === 'fieldRefTypes')) { // Replace the entire inputTypes array with just the first input type // This removes the fieldRefTypes reference while preserving functionality field.inputTypes = [field.inputTypes[0]]; } } } } function resolveAddMissingInputObjectTypeOptions(generatorConfigOptions) { return { isGenerateSelect: generatorConfigOptions.isGenerateSelect === 'true', isGenerateInclude: generatorConfigOptions.isGenerateInclude === 'true', }; } //# sourceMappingURL=helpers.js.map