Added logical or

This commit is contained in:
Sebastian Seedorf
2020-05-26 09:52:19 +02:00
parent c59e4a6a50
commit 05427eb47b
4 changed files with 49 additions and 3 deletions

18
validators/logic.ts Normal file
View File

@@ -0,0 +1,18 @@
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.";
},
};
}