import { FormValidatorFn } from './validator.types'; export function MinLength(length: number, message?: string): FormValidatorFn { return (_: string, value: unknown) => { let isValid = true; if (value != null && typeof value === 'string' && value.length < length) isValid = false; return { isValid, message: message || `Must be at least ${length} characters long`, }; }; } export function MaxLength(length: number, message?: string): FormValidatorFn { return (_: string, value: unknown) => { let isValid = true; if (value != null && typeof value === 'string' && value.length > length) isValid = false; return { isValid, message: message || `Must be less than ${length} characters long`, }; }; } export function IsRequired(message?: string): FormValidatorFn { return (_: string, value: unknown) => { return { isValid: !!value, message: message || `Field is required`, }; }; } export function IsEmail(message?: string): FormValidatorFn { return (_: string, value: unknown) => { let isValid = value != null && /\S+@\S+\.\S+/.test(value as string); return { isValid, message: message || `Must be a valid email address`, }; }; }