UNPKG

@ordojs/forms

Version:

Comprehensive form handling system for OrdoJS

68 lines 2.65 kB
/** * Simplified validation system for forms */ import type { FieldError, FieldValue, FieldValues, ValidationRule } from './types.js'; /** * Built-in validation rules */ export declare class ValidationRules { static required(message?: string): ValidationRule; static minLength(min: number, message?: string): ValidationRule; static maxLength(max: number, message?: string): ValidationRule; static min(min: number, message?: string): ValidationRule; static max(max: number, message?: string): ValidationRule; static email(message?: string): ValidationRule; static url(message?: string): ValidationRule; static pattern(regex: RegExp, message?: string): ValidationRule; static oneOf(options: FieldValue[], message?: string): ValidationRule; static custom(validator: (value: FieldValue, formValues?: FieldValues) => boolean | Promise<boolean>, message?: string): ValidationRule; static equalTo(fieldName: string, message?: string): ValidationRule; static date(message?: string): ValidationRule; static file(options?: { maxSize?: number; allowedTypes?: string[]; message?: string; }): ValidationRule; } /** * Simple validation manager */ export declare class ValidationManager { private static instance; private customValidators; static getInstance(): ValidationManager; /** * Register a custom validator globally */ registerValidator(name: string, rule: ValidationRule): void; /** * Get a registered validator */ getValidator(name: string): ValidationRule | undefined; /** * Validate a single field with multiple rules */ validateField(value: FieldValue, rules: ValidationRule[], formValues?: FieldValues): Promise<FieldError | null>; /** * Combine multiple validation rules */ combineRules(...rules: ValidationRule[]): ValidationRule[]; /** * Create conditional validation rule */ when(condition: (formValues: FieldValues) => boolean, thenRule: ValidationRule, elseRule?: ValidationRule): ValidationRule; } /** * Utility functions for validation */ export declare const validation: { rules: typeof ValidationRules; manager: ValidationManager; email: () => ValidationRule; required: () => ValidationRule; minLength: (min: number) => ValidationRule; maxLength: (max: number) => ValidationRule; pattern: (regex: RegExp, message?: string) => ValidationRule; async: (validator: (value: FieldValue, formValues?: FieldValues) => Promise<boolean>, message: string) => ValidationRule; }; //# sourceMappingURL=validation-simple.d.ts.map