prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
61 lines • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addMissingInputObjectTypesForModelArgs = addMissingInputObjectTypesForModelArgs;
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);
}
}
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: `${modelName}Args`,
constraints: {
maxNumFields: null,
minNumFields: null,
},
fields,
};
modelArgsInputObjectTypes.push(modelArgsInputObjectType);
}
return modelArgsInputObjectTypes;
}
//# sourceMappingURL=modelArgs-helpers.js.map