UNPKG

@conte-ltd/prisma-zod-generator

Version:

Prisma 2+ generator to emit Zod schemas from your Prisma schema

35 lines (34 loc) 1.78 kB
import type { DMMF as PrismaDMMF } from '@prisma/generator-helper'; import { TransformerParams } from './types'; import { SourceFile } from 'ts-morph'; export default class Transformer { sourceFile: SourceFile; name: string; fields: (PrismaDMMF.SchemaArg | PrismaDMMF.Field)[]; enumType: Partial<PrismaDMMF.SchemaEnum>; static enumNames: string[]; private static outputPath; private hasJson; static isDefaultPrismaClientOutput?: boolean; static prismaClientOutputPath?: string; constructor(params: TransformerParams); static setOutputPath(outPath: string): void; getPrismaStringLine(field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType, inputsLength: number): string; wrapWithZodValidators(mainValidator: string, field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType): string; getObjectSchemaLine(field: PrismaDMMF.SchemaArg): [string, PrismaDMMF.SchemaArg, boolean][]; getFieldValidators(zodStringWithMainType: string, field: PrismaDMMF.SchemaArg): string; addZodImport(): void; addPrismaTypeImport(): void; addFieldsSchemaImport(fields: PrismaDMMF.SchemaArg[], inObjectsPath?: boolean): void; getJsonSchemaImplementation(): string; getExportObjectSchema(schema: string, name: string): string; getExportSchema(schema: string, name: string): string; wrapWithZodObject(zodStringFields: string | string[]): string; wrapWithZodOUnion(zodStringFields: string[]): string; getZodObject(fields: PrismaDMMF.SchemaArg[]): string; printObjectSchemas(): SourceFile; printSelectObjectSchemas(isInclude?: boolean): SourceFile; printArgsObjectSchemas(modelName: string): SourceFile; printModelSchema(): SourceFile; printEnumSchemas(): SourceFile; }