/** * Extended generator options for Prisma Zod Generator * * This module provides parsing and validation for both existing and new * generator options while maintaining backward compatibility. */ /** * Extended generator configuration options */ export interface ExtendedGeneratorOptions { config?: string; minimal?: boolean; variants?: string[]; useMultipleFiles?: boolean; singleFileName?: string; placeSingleFileAtRoot?: boolean; pureModelsLean?: boolean; pureModelsIncludeRelations?: boolean; pureModelsExcludeCircularRelations?: boolean; dateTimeStrategy?: 'date' | 'coerce' | 'isoString'; dateTimeSplitStrategy?: boolean; jsonSchemaCompatible?: boolean; jsonSchemaOptions?: { dateTimeFormat?: 'isoString' | 'isoDate'; bigIntFormat?: 'string' | 'number'; bytesFormat?: 'base64String' | 'hexString'; conversionOptions?: { unrepresentable?: 'throw' | 'any'; cycles?: 'ref' | 'throw'; reused?: 'inline' | 'ref'; }; }; optionalFieldBehavior?: 'optional' | 'nullable' | 'nullish'; isGenerateSelect?: boolean; isGenerateInclude?: boolean; raw: Record; } /** * Parse and validate generator options from Prisma config */ export declare function parseGeneratorOptions(generatorConfig?: Record): ExtendedGeneratorOptions; /** * Validate generator options compatibility */ export declare function validateGeneratorOptions(options: ExtendedGeneratorOptions): void; /** * Create default generator options */ export declare function createDefaultGeneratorOptions(): ExtendedGeneratorOptions; /** * Merge generator options with defaults */ export declare function mergeGeneratorOptions(options: Partial, defaults?: ExtendedGeneratorOptions): ExtendedGeneratorOptions; /** * Convert generator options to configuration overrides * * This creates a partial configuration that can be merged with * the loaded configuration file to implement option precedence. */ export declare function generatorOptionsToConfigOverrides(options: ExtendedGeneratorOptions): GeneratorConfigOverrides; /** * Generator configuration overrides from options */ export interface GeneratorConfigOverrides { mode?: 'full' | 'minimal' | 'custom'; output?: string; isGenerateSelect?: boolean; isGenerateInclude?: boolean; useMultipleFiles?: boolean; singleFileName?: string; placeSingleFileAtRoot?: boolean; pureModelsLean?: boolean; pureModelsIncludeRelations?: boolean; pureModelsExcludeCircularRelations?: boolean; dateTimeStrategy?: 'date' | 'coerce' | 'isoString'; dateTimeSplitStrategy?: boolean; jsonSchemaCompatible?: boolean; jsonSchemaOptions?: { dateTimeFormat?: 'isoString' | 'isoDate'; bigIntFormat?: 'string' | 'number'; bytesFormat?: 'base64String' | 'hexString'; }; optionalFieldBehavior?: 'optional' | 'nullable' | 'nullish'; variants?: { pure?: { enabled?: boolean; }; input?: { enabled?: boolean; }; result?: { enabled?: boolean; }; }; } /** * Generator option parsing error */ export declare class GeneratorOptionError extends Error { readonly optionName: string; readonly optionValue: unknown; constructor(optionName: string, optionValue: unknown, message: string); getUserFriendlyMessage(): string; } /** * Format generator options for display/debugging */ export declare function formatGeneratorOptions(options: ExtendedGeneratorOptions): string; /** * Check if generator options indicate legacy usage */ export declare function isLegacyUsage(options: ExtendedGeneratorOptions): boolean; /** * Get migration suggestions for legacy usage */ export declare function getLegacyMigrationSuggestions(options: ExtendedGeneratorOptions): string[]; /** * Check if there are conflicting options between generator options and expected config file */ export declare function detectOptionConflicts(generatorOptions: ExtendedGeneratorOptions, configFileHasOptions: boolean): string[]; /** * Get effective configuration summary showing which options are active and their source */ export declare function getEffectiveConfigurationSummary(generatorOptions: ExtendedGeneratorOptions, hasConfigFile: boolean): string;