@stryke/prisma-trpc-generator
Version:
A fork of the prisma-trpc-generator code to work in ESM with Prisma v6.
57 lines (55 loc) • 1.74 kB
JavaScript
import { checkModelHasModelRelation } from "./model-helpers.mjs";
//#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 = 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
export { addMissingInputObjectTypesForModelArgs };
//# sourceMappingURL=modelArgs-helpers.mjs.map