eskema function
Returns a Validator that checks a value against a Map eskema that declares a validator for each key.
Example:
final mapField = all([
eskema({
'name': all([isType<String>()]),
'vat': or(
isTypeNull(),
isGte(0),
),
'age': all([
isType<int>(),
isGte(0),
]),
}),
]);
Implementation
IValidator eskema(Map<String, IValidator> mapEskema, {String? message}) {
FutureOr<Result> eskemaPredicate(value) {
final entries = mapEskema.entries.toList();
return _loop(entries: entries, errors: [], value: value, index: 0, message: message);
}
return isMap() & Validator(eskemaPredicate);
}