prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
63 lines (62 loc) • 2.05 kB
TypeScript
/**
* 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>;
}