19 lines
496 B
TypeScript
19 lines
496 B
TypeScript
import { Validator, Args, Validatable, validate } from "../mod.ts";
|
|
|
|
export function or(...funcs: Validatable[]): Validator {
|
|
return {
|
|
type: "or",
|
|
check: async (value: any) => {
|
|
const errors = await Promise.all(funcs.map((x) => validate(value, x)));
|
|
if (errors.every((x) => x.length > 0)) {
|
|
return {
|
|
errors,
|
|
};
|
|
}
|
|
},
|
|
message: (value: any, args?: Args) => {
|
|
return "At least one of the rules has to be successful.";
|
|
},
|
|
};
|
|
}
|