@ladislaogarcia/prisma-trpc-generator
Version:
Prisma 2+ generator to emit fully implemented tRPC routers
38 lines (31 loc) • 1.06 kB
text/typescript
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>;