UNPKG

prisma-zod-generator

Version:

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

63 lines (62 loc) 2.05 kB
/** * Pro Generator Context * * Centralized context for Pro features with DMMF access */ import { DMMF } from '@prisma/generator-helper'; import { GeneratorConfig } from '../../config/parser'; export interface ProGeneratorContext { /** Parsed DMMF from Prisma schema */ dmmf: DMMF.Document; /** Datamodel models from DMMF */ models: DMMF.Model[]; /** Datamodel enums from DMMF */ enums: DMMF.DatamodelEnum[]; /** Generator configuration */ generatorConfig: GeneratorConfig; /** Original schema file path */ schemaPath: string; /** Output directory for generated files */ outputPath: string; /** Prisma client import path */ prismaClientPath: string; /** Provider type (postgresql, mysql, etc.) */ provider: string; /** Preview features enabled */ previewFeatures?: string[]; } /** * Create a Pro Generator Context from core generator data */ export declare function createProGeneratorContext(dmmf: DMMF.Document, generatorConfig: GeneratorConfig, schemaPath: string, outputPath: string, prismaClientPath: string, provider: string, previewFeatures?: string[]): ProGeneratorContext; /** * Pro Generator Context utilities */ export declare class ProContextUtils { private context; constructor(context: ProGeneratorContext); /** * Get all models or filter by name pattern */ getModels(namePattern?: string | RegExp): DMMF.Model[]; /** * Get model by exact name */ getModelByName(name: string): DMMF.Model | undefined; /** * Get all enums or filter by name pattern */ getEnums(namePattern?: string | RegExp): DMMF.DatamodelEnum[]; /** * Get enum by exact name */ getEnumByName(name: string): DMMF.DatamodelEnum | undefined; /** * Check if provider supports specific features */ supportsFeature(feature: 'json' | 'fulltext' | 'views' | 'multiSchema'): boolean; /** * Get provider-specific type mappings */ getProviderTypeMapping(): Record<string, string>; }