compose static method

String? Function(String?) compose(
  1. Iterable<String? Function(String?)> validators
)

Runs validators in order and returns the first error, or null if all pass.

Example:

validator: Validator.compose([
  Validator.required(errorMessage: 'Email is required'),
  Validator.email(errorMessage: 'Enter a valid email'),
])

Implementation

static String? Function(String?) compose(
  Iterable<String? Function(String?)> validators,
) {
  return (String? value) {
    for (final validator in validators) {
      final error = validator(value);
      if (error != null) return error;
    }
    return null;
  };
}