eskema function

IValidator eskema(
  1. Map<String, IValidator> mapEskema, {
  2. String? message,
})

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);
}