Prisma to Zod Converter
Convert Prisma schema models to Zod validation schemas with TypeScript type inference
Input
Output
Readme
What is Prisma and Zod?
Prisma is an ORM (Object-Relational Mapping) tool that uses a schema file to define your database structure with models, fields, and relationships. Zod is a TypeScript-first schema validation library that lets you define runtime type validators. Converting Prisma schemas to Zod schemas allows you to reuse your database model definitions for input validation, ensuring consistency between your database structure and validation logic throughout your application.
Tool description
This tool automatically converts Prisma schema definitions into Zod validation schemas. It parses your Prisma models, enums, and field types, then generates corresponding Zod schemas with proper type mappings. The tool handles optional fields, arrays, and special Prisma types, creating TypeScript-ready validation schemas that mirror your database structure.
Features
- Automatic Type Mapping: Converts Prisma types (String, Int, DateTime, etc.) to corresponding Zod validators
- Enum Support: Generates Zod enum schemas from Prisma enum definitions
- Array Handling: Properly converts Prisma list fields to Zod array validators
- Optional Fields: Maintains optional field definitions in the generated Zod schemas
- TypeScript Types: Automatically generates TypeScript type definitions using
z.infer - Relation Comments: Adds comments for relation fields that can't be directly converted
- Multiple Models: Processes all models and enums in a single Prisma schema file
- Syntax Highlighting: Code editor with Prisma and TypeScript syntax highlighting
Use Cases
- API Input Validation: Validate request bodies against your database models
- Form Validation: Use Zod schemas with form libraries like React Hook Form
- Type Safety: Ensure runtime validation matches your database schema
- Code Generation: Automatically generate validation logic from your database models
- Consistency: Keep validation schemas synchronized with database structure
- GraphQL Resolvers: Validate inputs in GraphQL mutation resolvers
- Migration Support: Update validation schemas when database models change
Supported Type Mappings
String→z.string()Int,Float,Decimal→z.number()Boolean→z.boolean()DateTime→z.date()Json→z.record(z.any())Bytes→z.instanceof(Buffer)BigInt→z.bigint()- Custom types/enums →
z.lazy(() => TypeSchema) - Lists →
z.array() - Optional fields →
.optional()