validate

  1. @override
ValidationResult<int> validate(
  1. dynamic value
)

override

Implementation

@override
ValidationResult<int> validate(dynamic value) {
  if (value == null) {
    return Invalid({
      _fieldName: ['is required']
    });
  }

int intValue; if (value is int) { intValue = value; } else if (value is String) { final parsed = int.tryParse(value); if (parsed == null) { return Invalid({ _fieldName: ['must be a number'] }); } intValue = parsed; } else if (value is num) { intValue = value.toInt(); } else { return Invalid({ _fieldName: ['must be a number'] }); }

final errors = <String>[]; for (final check in _checks) { final error = check(intValue); if (error.isNotEmpty) errors.add(error); }

if (errors.isNotEmpty) { return Invalid({_fieldName: errors}); } return Valid(intValue); }