Automatically generate typescript models of your database with class validator validations ready, from your Prisma Schema. Updates every time npx prisma generate
runs.
Probably no breaking changes for this library, so try newer versions first.
- 0.2.0 and higher
- 0.1.1 and lower
Using npm:
npm install prisma-class-validator-generator
Using yarn:
yarn add prisma-class-validator-generator
1- Star this repo 😉
2- Add the generator to your Prisma schema
generator class_validator {
provider = "prisma-class-validator-generator"
output = "./class-validator-gen"
}
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?
rating Float
}
will generate the following files
Inside User
model:
import { IsInt, IsDefined, IsString, IsOptional } from "class-validator";
import { Post } from "./";
export class User {
@IsDefined()
@IsInt()
id!: number;
@IsDefined()
@IsString()
email!: string;
@IsOptional()
@IsString()
name?: string;
@IsDefined()
posts!: Post[];
}
Option | Description | Type | Default |
---|---|---|---|
output |
Output directory for the generated models and enums | string |
./generated |
modelDir |
Model directory name for the generated models | string |
./generated/models |
enumDir |
Enum directory name for the generated enums | string |
./generated/enums |
Use additional options in the schema.prisma
generator class_validator {
provider = "prisma-class-validator-generator"
output = "./generated"
modelDir = "models"
enumDir = "enums"
}