zod-prisma-types
こういうschemaから
code:schema.prisma(ts)
model User {
id Int @id @default(autoincrement())
/// @zod.string.email()
email String @unique
/// @zod.string.max(255, { message: "max error" })
name String?
posts Post[]
}
こういうのが生成される
code:ts
export const UserSchema = z.object({
id: z.number().int(),
email: z.string().email(),
name: z.string().max(255, { message: "max error" }).nullable(),
});
export type User = z.infer<typeof UserSchema>;
地味に辛そうだが、わからんではない
でももともとPrismaはそこそこ型安全なのでやっぱ中途半端な気がする
旨味は篩型っぽいvalidationができるとこぐらいかmrsekut.icon
DB→Repositoryの部分の型安全性はそもそもprismaで担保されてるし、
repository→entityの箇所は別途validationが必要になることが多い