UNPKG

@ladislaogarcia/prisma-zod-generator

Version:

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

78 lines (77 loc) 3.53 kB
import type { ConnectorType, DMMF as PrismaDMMF } from '@prisma/generator-helper'; import { AggregateOperationSupport, TransformerParams } from './types'; export default class Transformer { name: string; fields: PrismaDMMF.SchemaArg[]; schemaImports: Set<string>; models: PrismaDMMF.Model[]; modelOperations: PrismaDMMF.ModelMapping[]; aggregateOperationSupport: AggregateOperationSupport; enumTypes: PrismaDMMF.SchemaEnum[]; static enumNames: string[]; static rawOpsMap: { [name: string]: string; }; static provider: ConnectorType; static previewFeatures: string[] | undefined; private static outputPath; private hasJson; private static prismaClientOutputPath; private static isCustomPrismaClientOutputPath; private static isGenerateSelect; private static isGenerateInclude; constructor(params: TransformerParams); static setOutputPath(outPath: string): void; static setIsGenerateSelect(isGenerateSelect: boolean): void; static setIsGenerateInclude(isGenerateInclude: boolean): void; static getOutputPath(): string; static setPrismaClientOutputPath(prismaClientCustomPath: string): void; static generateIndex(): Promise<void>; generateEnumSchemas(): Promise<void>; generateImportZodStatement(): string; generateExportSchemaStatement(name: string, schema: string): string; generateObjectSchema(): Promise<void>; generateObjectSchemaFields(): string[]; getFieldByPrismaVersion(field: PrismaDMMF.SchemaArg): PrismaDMMF.SchemaArg; generateObjectSchemaField(field: PrismaDMMF.SchemaArg): [string, PrismaDMMF.SchemaArg, boolean][]; wrapWithZodValidators(mainValidator: string, field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType): string; addSchemaImport(name: string): void; generatePrismaStringLine(field: PrismaDMMF.SchemaArg, inputType: PrismaDMMF.SchemaArgInputType, inputsLength: number): string; generateFieldValidators(zodStringWithMainType: string, field: PrismaDMMF.SchemaArg): string; prepareObjectSchema(zodObjectSchemaFields: string[]): string; generateExportObjectSchemaStatement(schema: string): string; addFinalWrappers({ zodStringFields }: { zodStringFields: string[]; }): string; generateImportPrismaStatement(): string; generateJsonSchemaImplementation(): string; generateObjectSchemaImportStatements(): string; generateSchemaImports(): string; checkIsModelQueryType(type: string): { isModelQueryType: boolean; modelName: string; queryName: string; } | { isModelQueryType: boolean; modelName?: undefined; queryName?: undefined; }; resolveModelQuerySchemaName(modelName: string, queryName: string): string; wrapWithZodUnion(zodStringFields: string[]): string; wrapWithZodObject(zodStringFields: string | string[]): string; resolveObjectSchemaName(): string; generateModelSchemas(): Promise<void>; generateImportStatements(imports: (string | undefined)[]): string; resolveSelectIncludeImportAndZodSchemaLine(model: PrismaDMMF.Model): { selectImport: string; includeImport: string; selectZodSchemaLine: string; includeZodSchemaLine: string; selectZodSchemaLineLazy: string; includeZodSchemaLineLazy: string; }; resolveOrderByWithRelationImportAndZodSchemaLine(model: PrismaDMMF.Model): { orderByImport: string; orderByZodSchemaLine: string; }; }