@conte-ltd/prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
35 lines (34 loc) • 1.78 kB
TypeScript
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;
}