{"library":"prisma-class-validator-generator","title":"Prisma Class Validator Generator","description":"The `prisma-class-validator-generator` is a utility that automates the creation of TypeScript data transfer objects (DTOs) directly from a Prisma schema, automatically decorating them with `class-validator` rules. This eliminates significant boilerplate for developers working with Prisma and `class-validator` for input validation. The package is currently stable at version `6.2.0`, following a relatively active release cadence with semantic versioning adopted since v6.1.0, indicating consistent development and maintenance. Key differentiators include its tight integration with Prisma, providing automatic mapping of Prisma types to appropriate validation decorators, ensuring type-safety, and offering a zero-configuration setup for immediate use. It supports modern Prisma versions, currently `Prisma 6.12+`, and is designed for Node.js 18+ environments with TypeScript 5.8+. This generator is crucial for projects aiming for robust backend validation without manually synchronizing schema changes with validation classes.","language":"javascript","status":"active","last_verified":"Wed Apr 22","install":{"commands":["npm install prisma-class-validator-generator"],"cli":null},"imports":["import { User } from './generated/models';","import { validate } from 'class-validator';","import { plainToClass } from 'class-transformer';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"/* schema.prisma */\ngenerator client {\n  provider = \"prisma-client\"\n  output   = \"../generated/prisma-client\"\n}\n\ngenerator class_validator {\n  provider = \"prisma-class-validator-generator\"\n  output   = \"./generated\"\n}\n\nmodel User {\n  id    Int     @id @default(autoincrement())\n  email String  @unique\n  name  String?\n  posts Post[]\n}\n\nmodel Post {\n  id        Int      @id @default(autoincrement())\n  createdAt DateTime @default(now())\n  updatedAt DateTime @updatedAt\n  title     String\n  content   String?\n  published Boolean  @default(false)\n  viewCount Int      @default(0)\n  author    User?    @relation(fields: [authorId], references: [id])\n  authorId  Int?\n  rating    Float\n}\n\n/* Usage in TypeScript file */\nimport { User } from './generated/models';\nimport { validate } from 'class-validator';\nimport { plainToClass } from 'class-transformer';\n\nasync function validateUser(userData: any) {\n  const userInstance = plainToClass(User, userData);\n  const errors = await validate(userInstance);\n\n  if (errors.length > 0) {\n    console.error('Validation failed:', errors);\n    return false;\n  } else {\n    console.log('Validation successful!');\n    return true;\n  }\n}\n\n// Example usage:\nvalidateUser({ email: 'test@example.com', name: 'John Doe' });\nvalidateUser({ email: 'invalid-email', name: 123 }); // This should fail\n\n// To run this, first ensure `prisma generate` has been executed:\n// npx prisma generate\n","lang":"typescript","description":"This quickstart demonstrates how to configure the `prisma-class-validator-generator` in your Prisma schema, generate the TypeScript models, and then use `class-validator` along with `class-transformer` to validate data against the generated `User` class.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}