UNPKG

@ladislaogarcia/prisma-trpc-generator

Version:

Prisma 2+ generator to emit fully implemented tRPC routers

38 lines (31 loc) 1.06 kB
import { DMMF } from '@prisma/generator-helper'; import { z } from 'zod'; const configBoolean = z .enum(['true', 'false']) .transform((arg) => JSON.parse(arg)); const configMiddleware = z.union([ configBoolean, z.string().default('../../../../src/middleware'), ]); const configShield = z.union([ configBoolean, z.string().default('../../../../src/shield'), ]); const modelActionEnum = z.nativeEnum(DMMF.ModelAction); export const configSchema = z.object({ withMiddleware: configMiddleware.default('true'), withShield: configShield.default('true'), withZod: configBoolean.default('true'), contextPath: z.string().default('../../../../src/context'), trpcOptionsPath: z.string().optional(), showModelNameInProcedure: configBoolean.default('true'), generateModelActions: z .string() .default(Object.values(DMMF.ModelAction).join(',')) .transform((arg) => { return arg .split(',') .map((action) => modelActionEnum.parse(action.trim())); }), }); export type Config = z.infer<typeof configSchema>;