Automatically generate Joi schemas from your Prisma Schema, and use them to validate your API endpoints or any other use you have. Updates every time npx prisma generate
runs.
Using npm:
npm install prisma-joi-generator
Using yarn:
yarn add prisma-joi-generator
1- Star this repo 😉
2- Add the generator to your Prisma schema
generator joi {
provider = "prisma-joi-generator"
}
3- Running npx prisma generate
for the following schema.prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
content String?
published Boolean @default(false)
viewCount Int @default(0)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
will generate the following files
4- Use generated schemas somewhere in your API logic, like middleware or decorator
import { PostCreateSchema } from './prisma/generated/schemas';
app.post('/blog', async (req, res, next) => {
const { body } = req;
const result = PostCreateSchema.validate(body);
});
Option | Â Description | Type | Â Default |
---|---|---|---|
output |
Output directory for the generated joi schemas | string |
./generated |
Use additional options in the schema.prisma
generator joi {
provider = "prisma-joi-generator"
output = "./generated-joi-schemas"
}