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
TypeScript
/**
* 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