@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
81 lines (80 loc) • 2.62 kB
TypeScript
export interface ValidationRule {
field: string;
type: 'required' | 'type' | 'enum' | 'pattern' | 'range' | 'custom';
message: string;
validator?: (value: any, context?: any) => boolean;
details?: {
allowedValues?: any[];
pattern?: RegExp;
min?: number;
max?: number;
expectedType?: string;
};
}
export interface ValidationResult {
valid: boolean;
errors: ValidationErrorDetail[];
warnings: ValidationWarning[];
suggestions: ValidationSuggestion[];
}
export interface ValidationErrorDetail {
field: string;
message: string;
severity: 'error' | 'warning';
code: string;
value?: any;
expectedValue?: any;
suggestions?: string[];
context?: string;
line?: number;
column?: number;
}
export interface ValidationWarning {
field: string;
message: string;
suggestion: string;
impact: 'low' | 'medium' | 'high';
}
export interface ValidationSuggestion {
field: string;
suggestion: string;
reason: string;
autoFixable: boolean;
autoFixValue?: any;
}
export declare const GLOBAL_CONFIG_SCHEMA: ValidationRule[];
export declare const PROJECT_CONFIG_SCHEMA: ValidationRule[];
export declare const ENVIRONMENT_CONFIG_SCHEMA: ValidationRule[];
export declare class ConfigurationValidator {
private errors;
private warnings;
private suggestions;
validateConfiguration(config: any, schema: ValidationRule[], context?: string): ValidationResult;
private validateField;
private validateRequired;
private validateType;
private validateEnum;
private validatePattern;
private validateRange;
private validateCustom;
private performContextualValidations;
private validateGlobalContextual;
private validateProjectContextual;
private generateRequiredFieldSuggestions;
private generateTypeSuggestions;
private generateEnumSuggestions;
private generatePatternSuggestions;
private generateCustomSuggestions;
private getNestedValue;
private calculateSimilarity;
private levenshteinDistance;
private addError;
private addWarning;
private addSuggestion;
private reset;
}
export declare const configValidator: ConfigurationValidator;
export declare function validateGlobalConfig(config: any): ValidationResult;
export declare function validateProjectConfig(config: any): ValidationResult;
export declare function validateEnvironmentConfig(config: any): ValidationResult;
export declare function validateConfigFile(filePath: string, configType: 'global' | 'project'): Promise<ValidationResult>;