prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
80 lines (79 loc) • 2.42 kB
TypeScript
import { ValidationError } from './schema';
import { GeneratorConfig } from './parser';
/**
* Configuration validation result
*/
export interface ValidationResult {
/** Whether the configuration is valid */
valid: boolean;
/** Array of validation errors (empty if valid) */
errors: ValidationError[];
/** The validated configuration (potentially with defaults applied) */
config?: GeneratorConfig;
/** Warnings that don't prevent usage but should be noted */
warnings: string[];
}
/**
* Configuration validator class
*/
export declare class ConfigurationValidator {
private readonly ajv;
private readonly validateConfig;
constructor();
/**
* Validate a configuration object
*/
validate(config: unknown, modelNames?: string[]): ValidationResult;
/**
* Validate configuration with Prisma model names
*/
validateWithModels(config: unknown, modelNames: string[]): ValidationResult;
/**
* Convert AJV validation errors to our error format
*/
private convertAjvErrors;
/**
* Convert a single AJV error to our error format
*/
private convertSingleAjvError;
/**
* Get human-readable error message for pattern validation failures
*/
private getPatternErrorMessage;
/**
* Validate cross-field constraints
*/
private validateCrossFieldConstraints;
/**
* Validate model references against actual Prisma models
*/
private validateModelReferences;
/**
* Validate variant consistency
*/
private validateVariantConsistency;
/**
* Validate operation consistency
*/
private validateOperationConsistency;
/**
* Apply default values to configuration
*/
private applyDefaults;
}
/**
* Convenience function to validate configuration
*/
export declare function validateConfiguration(config: unknown, modelNames?: string[]): ValidationResult;
/**
* Convenience function to validate configuration with model names
*/
export declare function validateConfigurationWithModels(config: unknown, modelNames: string[]): ValidationResult;
/**
* Create human-readable validation error message
*/
export declare function formatValidationErrors(errors: ValidationError[]): string;
/**
* Create human-readable validation warnings message
*/
export declare function formatValidationWarnings(warnings: string[]): string;