@explita/prisma-guard
v0.3.0
Published
The ultimate Prisma companion for input sanitization and Zod schema generation. Protect your database from unknown fields and validate your data with ease.
Maintainers
Readme
Prisma Guard
The ultimate Prisma companion for input sanitization and professional Zod schema generation.
Prisma Guard protects your database from unknown fields at runtime while automatically transforming your Prisma models into robust, annotated Zod validation schemas.
📖 Complete Documentation
Visit our documentation portal for complete guides, decorators, virtual fields, advanced type helpers, and CLI commands references:
Installation
npm install @explita/prisma-guardEnsure @prisma/client and zod are installed as peer dependencies.
Quick Start (2 Minutes)
1. Initialize Configuration
Generate the default configuration file in your project root:
npx prisma-guard init2. Define Your Models
Create your database models inside your Prisma schema folder (e.g., ./prisma/schema.prisma):
model User {
id String @id @default(cuid())
email String @unique
password String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}3. Generate Validation Schemas
Compile Zod validation schemas and client mappings:
npx prisma-guard4. Setup Client and Validate Payload
Mount the runtime guard extension onto your Prisma Client and validate body inputs:
import { PrismaClient } from "@prisma/client";
import { prismaGuard } from "@explita/prisma-guard";
import { UserCreateSchema } from "./generated/zod/user"; // Generated path
// 1. Initialize client with runtime field stripping
const prisma = new PrismaClient().$extends(prismaGuard());
// 2. Validate public user input payload
const rawPayload = {
email: "[email protected]",
password: "securePassword123",
maliciousField: "stripped_at_runtime",
};
const validatedData = UserCreateSchema.parse(rawPayload);
// 3. Write securely to the database
await prisma.user.create({
data: {
...validatedData,
anotherUnmappedField: "automatically_stripped_by_extension",
},
});💖 Support the Mission
Prisma Guard is built to save developers time and prevent costly database errors. If it has helped you build better APIs faster, please consider supporting the project to ensure its continued growth and maintenance!
🚀 Ways to Contribute
- Give us a ⭐: It helps others discover the project.
- Join the Discussion: Report bugs or suggest new features.
- Spread the Word: Share your experience with Prisma Guard on social media.
🙏 Our Amazing Supporters
A huge thank you to everyone helping us build the future of type-safe database guards!
License
MIT © Explita
