@ladislaogarcia/prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
37 lines (31 loc) • 1.08 kB
text/typescript
import { DMMF } from '@prisma/generator-helper';
export function checkModelHasModelRelation(model: DMMF.Model) {
const { fields: modelFields } = model;
for (const modelField of modelFields) {
const isRelationField = checkIsModelRelationField(modelField);
if (isRelationField) {
return true;
}
}
return false;
}
export function checkModelHasManyModelRelation(model: DMMF.Model) {
const { fields: modelFields } = model;
for (const modelField of modelFields) {
const isManyRelationField = checkIsManyModelRelationField(modelField);
if (isManyRelationField) {
return true;
}
}
return false;
}
export function checkIsModelRelationField(modelField: DMMF.Field) {
const { kind, relationName } = modelField;
return kind === 'object' && !!relationName;
}
export function checkIsManyModelRelationField(modelField: DMMF.Field) {
return checkIsModelRelationField(modelField) && modelField.isList;
}
export function findModelByName(models: DMMF.Model[], modelName: string) {
return models.find(({ name }) => name === modelName);
}