UNPKG

@mmstack/form-validation

Version:

This is an internal library for providing localized validators :)

50 lines (49 loc) 2.19 kB
import { Validator } from '../validator.type'; import { createIntegerValidator } from './integer'; import { createIsNumberValidator } from './is-number'; import { createMaxValidator } from './max'; import { createMinValidator } from './min'; import { createMultipleOfValidator } from './multiple-of'; export type NumberMessageFactories = { min: Parameters<typeof createMinValidator>[0]; max: Parameters<typeof createMaxValidator>[0]; isNumber: Parameters<typeof createIsNumberValidator>[0]; multipleOf: Parameters<typeof createMultipleOfValidator>[0]; integer: Parameters<typeof createIntegerValidator>[0]; }; export type NumberValidatorOptions = { min?: number; max?: number; integer?: boolean; multipleOf?: number; required?: boolean; mustBe?: number | null; not?: number | null; oneOf?: (number | null)[]; notOneOf?: (number | null)[]; }; export declare function createNumberValidators(factories?: Partial<NumberMessageFactories>, generalValidators?: { required: <T>(label?: string) => Validator<T>; mustBe: <T>(value: T, valueLabel?: string, matcher?: (a: T, b: T) => boolean) => Validator<T>; mustBeNull: <T>() => Validator<T>; not: <T>(value: T, valueLabel?: string, matcher?: (a: T, b: T) => boolean) => Validator<T>; oneOf: <T>(values: T[], toLabel?: (value: T) => string, identity?: (a: T) => string, delimiter?: string) => Validator<T>; notOneOf: <T>(values: T[], toLabel?: (value: T) => string, identity?: (a: T) => string, delimiter?: string) => Validator<T>; }, merger?: <T>(validators: Validator<T>[]) => ((value: T) => string) & { resolve: (mergedError: string) => { error: string; tooltip: string; }; }): { all: (opt: NumberValidatorOptions) => ((value: number | null) => string) & { resolve: (mergedError: string) => { error: string; tooltip: string; }; }; min: (min: number) => Validator<number | null>; max: (max: number) => Validator<number | null>; isNumber: () => Validator<number | null>; multipleOf: (multipleOf: number) => Validator<number | null>; integer: () => Validator<number | null>; };