UNPKG

unified-error-handling

Version:

A lightweight, zero-dependency error handling library with dynamic adapter loading for multiple error tracking services

113 lines 3.31 kB
/** * Configuration validation utilities * * This module provides comprehensive validation for configuration objects, * ensuring that all settings are valid and secure. */ import type { UnifiedErrorConfig, FirebaseConfig, SentryConfig } from '../types'; /** * Validation result interface */ export interface ValidationResult { isValid: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; } /** * Validation error interface */ export interface ValidationError { field: string; message: string; code: string; severity: 'error' | 'warning'; } /** * Validation warning interface */ export interface ValidationWarning { field: string; message: string; code: string; suggestion?: string; } /** * Configuration validation rules */ export declare const VALIDATION_RULES: { readonly sampleRate: { readonly min: 0; readonly max: 1; readonly message: "Sample rate must be between 0 and 1"; }; readonly maxBreadcrumbs: { readonly min: 0; readonly max: 1000; readonly message: "Max breadcrumbs must be between 0 and 1000"; }; readonly maxOfflineQueueSize: { readonly min: 0; readonly max: 10000; readonly message: "Max offline queue size must be between 0 and 10000"; }; readonly offlineRetryDelay: { readonly min: 1000; readonly max: 300000; readonly message: "Offline retry delay must be between 1000ms and 300000ms"; }; readonly environment: { readonly validValues: readonly ["development", "staging", "production"]; readonly message: "Environment must be one of: development, staging, production"; }; }; /** * Validate base configuration */ export declare function validateBaseConfig(config: Partial<UnifiedErrorConfig>): ValidationResult; /** * Validate Firebase-specific configuration */ export declare function validateFirebaseConfig(config: Partial<FirebaseConfig>): ValidationResult; /** * Validate Sentry-specific configuration */ export declare function validateSentryConfig(config: Partial<SentryConfig>): ValidationResult; /** * Validate complete configuration */ export declare function validateConfig(config: Partial<UnifiedErrorConfig>): ValidationResult; /** * Sanitize configuration for logging (remove sensitive data) */ export declare function sanitizeConfig(config: any): any; /** * Create a configuration validator */ export declare class ConfigValidator { private customRules; /** * Add a custom validation rule */ addRule(field: string, validator: (value: any) => ValidationError | null): this; /** * Validate configuration with custom rules */ validate(config: Partial<UnifiedErrorConfig>): ValidationResult; /** * Get nested value from object using dot notation */ private getNestedValue; } /** * Create a new configuration validator */ export declare function createValidator(): ConfigValidator; /** * Quick validation function for development */ export declare function isValidConfig(config: Partial<UnifiedErrorConfig>): boolean; /** * Format validation errors for display */ export declare function formatValidationErrors(result: ValidationResult): string; //# sourceMappingURL=validator.d.ts.map