asFormValidator<TIssue extends ValidationIssue, TValue> function

String? Function(String?) asFormValidator<TIssue extends ValidationIssue, TValue>({
  1. required ValidationResult<TIssue, TValue> validate(
    1. String input
    ),
  2. required ValidationMessageResolver<TIssue> resolve,
  3. String? validatorOverride(
    1. String?
    )?,
})

Converts a canonical validator into a Flutter-style form validator.

Implementation

String? Function(String?)
asFormValidator<TIssue extends ValidationIssue, TValue>({
  required ValidationResult<TIssue, TValue> Function(String input) validate,
  required ValidationMessageResolver<TIssue> resolve,
  String? Function(String?)? validatorOverride,
}) {
  return (value) {
    final message = validate(value ?? '').fold(resolve, (_) => null);
    if (message != null) {
      return message;
    }
    return validatorOverride?.call(value);
  };
}