
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
prisma-trpc-generator
Advanced tools
A Prisma generator that automates creating your tRPC routers from your Prisma schema.
Explore the options »
Report Bug
·
Request Feature
Automatically generate fully implemented tRPC routers from your Prisma Schema. This includes routers, app router and of course all input schemas using Zod. Updates every time npx prisma generate
runs.
Using npm:
npm install prisma-trpc-generator
Using yarn:
yarn add prisma-trpc-generator
1- Star this repo 😉
2- Add the generator to your Prisma schema
generator trpc {
provider = "prisma-trpc-generator"
withZod = true
withMiddleware = false
withShield = false
contextPath = "../src/context"
trpcOptionsPath = "../src/trpcOptions"
}
3- Enable strict mode in tsconfig
as it is required by Zod, and considered a Typescript best practice
{
"compilerOptions": {
"strict": true
}
}
4- 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
5- Make sure you have a valid Context
file, as specified in contextPath
option. The official Context for reference.
6- Optionally, you can specify a trpcOptionsPath
to set various tRPC options (like transformer, error formatter, etc). Find about all possible options here.
import { ZodError } from 'zod';
export default {
errorFormatter({ shape, error }) {
return {
...shape,
data: {
...shape.data,
zodError:
error.code === 'BAD_REQUEST' && error.cause instanceof ZodError
? error.cause.flatten()
: null,
},
};
},
};
/// @@Gen.model(hide: true)
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
Option | Description | Type | Default |
---|---|---|---|
output | Output directory for the generated routers and zod schemas | string | ./generated |
withMiddleware | Attaches a global middleware that runs before all procedures | boolean or string | true |
output | Output directory for the generated routers and zod schemas | string | ./generated |
withZod | Use Zod for input validation | boolean | true |
withShield | Generates a tRPC Shield to use as a permissions layer | boolean or string | true |
contextPath | Sets the context path used in your routers | string | ../../../../src/context |
trpcOptionsPath | Sets the tRPC instance options | string | ../../../../src/trpcOptions |
isGenerateSelect | Enables the generation of Select related schemas and the select property | boolean | false |
isGenerateInclude | Enables the generation of Include related schemas and the include property | boolean | false |
showModelNameInProcedure | When disabled, the generated procedure no longer includes the name of the Prisma model | boolean | true |
generateModelActions | Enables the generation of specific model actions | string | aggregate,aggregateRaw,count,create,createMany,delete,deleteMany,findFirst,findFirstOrThrow,findMany,findRaw,findUnique,findUniqueOrThrow,groupBy,update,updateMany,upsert |
Use additional options in the schema.prisma
generator trpc {
provider = "prisma-trpc-generator"
output = "./trpc"
withMiddleware = "../middleware"
withZod = false
withShield = false
contextPath = "../context"
trpcOptionsPath = "../trpcOptions"
isGenerateSelect = true
isGenerateInclude = true
showModelNameInProcedure = false
generateModelActions = "aggregate,aggregateRaw,count,create,createMany,delete,deleteMany,findFirst,findFirstOrThrow,findMany,findRaw,findUnique,findUniqueOrThrow,groupBy,update,updateMany,upsert"
}
FAQs
Prisma 2+ generator to emit fully implemented tRPC routers
We found that prisma-trpc-generator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.