@mmstack/form-validation
Version:
This is an internal library for providing localized validators :)
28 lines (27 loc) • 1.12 kB
TypeScript
import { Validator } from '../validator.type';
import { createMaxLengthValidator } from './max-length';
import { createMinLengthValidator } from './min-length';
export type ArrayMessageFactories = {
minLength: Parameters<typeof createMinLengthValidator>[0];
maxLength: Parameters<typeof createMaxLengthValidator>[0];
};
export type ArrayValidatorOptions = {
minLength?: number;
maxLength?: number;
elementsLabel?: string;
};
export declare function createArrayValidators(factories?: Partial<ArrayMessageFactories>, merger?: <T>(validators: Validator<T>[]) => ((value: T) => string) & {
resolve: (mergedError: string) => {
error: string;
tooltip: string;
};
}): {
all: <T extends any[]>(opt: ArrayValidatorOptions) => ((value: T) => string) & {
resolve: (mergedError: string) => {
error: string;
tooltip: string;
};
};
minLength: <T extends string | any[] | null>(min: number, elementsLabel?: string) => Validator<T>;
maxLength: <T extends string | any[] | null>(max: number, elementsLabel?: string) => Validator<T>;
};