withExpectation function
- IValidator child,
- Expectation error
Returns a IValidator that wraps the given child validator and adds the
provided error message to the result if the validation fails.
Preserves the underlying child's code and data (if the child failed).
See docs/expectation_codes.md.
Implementation
IValidator withExpectation(IValidator child, Expectation error) => Validator<Result>((value) {
final resOr = child.validator(value);
if (resOr is Future<Result>) {
return resOr.then((r) => Result(
isValid: r.isValid,
expectations: [
error.copyWith(value: value, code: r.isValid ? null : r.firstExpectation.code)
],
value: value,
));
}
return Result(
isValid: resOr.isValid,
expectations: [
error.copyWith(value: value, code: resOr.isValid ? null : resOr.firstExpectation.code)
],
value: value,
);
});