UNPKG

smart-dropzone-react

Version:

🚀 A production-ready React dropzone component with smart defaults, drag & drop reordering, chunked uploads, resume functionality, and comprehensive provider support (Cloudinary, AWS S3, Supabase)

66 lines (64 loc) • 2.04 kB
/** * Comprehensive validation utilities for Smart Dropzone * * This module provides robust input validation for all user inputs, * file operations, and configuration parameters throughout the package. */ interface ValidationResult { isValid: boolean; errors: string[]; warnings: string[]; } declare class InputValidator { /** * Validate file objects */ static validateFile(file: unknown): ValidationResult; /** * Validate file arrays */ static validateFileList(files: unknown): ValidationResult; /** * Validate upload options */ static validateUploadOptions(options: unknown): ValidationResult; /** * Validate preview options */ static validatePreviewOptions(options: unknown): ValidationResult; /** * Validate drag and drop options */ static validateDragOptions(options: unknown): ValidationResult; /** * Validate provider configuration */ static validateProviderConfig(config: unknown): ValidationResult; /** * Validate array indices and ranges */ static validateArrayOperation(fromIndex: number, toIndex: number, arrayLength: number): ValidationResult; /** * Validate and sanitize user input strings */ static sanitizeString(input: unknown, maxLength?: number): string; /** * Validate HTML element references */ static validateElement(element: unknown): ValidationResult; /** * Comprehensive validation for all inputs */ static validateAllInputs(inputs: { files?: unknown; options?: unknown; previewOptions?: unknown; dragOptions?: unknown; providerConfig?: unknown; }): ValidationResult; } /** * Validation decorators for method parameters */ declare function validateInput(validationFn: (input: any) => ValidationResult): (_target: any, _propertyName: string, descriptor: PropertyDescriptor) => void; export { InputValidator, type ValidationResult, InputValidator as default, validateInput };