validate method

  1. @override
ValidationResult<List<Serialized>> validate(
  1. String key,
  2. covariant List input
)
override

Performs type coercion against an input value, and returns a list of errors if the validation was unsuccessful.

Implementation

@override
ValidationResult<List<Serialized>> validate(String key, List input) {
  //if (input is! List) {
  //  return ValidationResult._failure(['Expected "$key" to be a list.']);
  //}

  var out = <Serialized>[];
  var errors = <String>[];

  for (var i = 0; i < input.length; i++) {
    var k = '"$key" at index $i';
    var v = input[i];
    var result = ofType.validate(k, v);
    if (!result.successful) {
      errors.addAll(result.errors);
    } else {
      out.add(v);
    }
  }

  if (errors.isNotEmpty) return ValidationResult._failure(errors);
  return ValidationResult._ok(out);
}