passes method
Validates the value using the given context.
Returns true if valid, otherwise false.
Implementation
@override
FutureOr<bool> passes(ValidationContext context) {
final value = context.value;
final args = context.parameters;
if (value == null || args.isEmpty) return false;
if (value is! String) return false;
try {
final format = args[0];
if (format == 'Y-m-d' || format == 'Y/m/d') {
final dateRegex = RegExp(r'^\d{4}[-/]\d{2}[-/]\d{2}$');
if (!dateRegex.hasMatch(value)) return false;
final parts = value.split(RegExp(r'[-/]'));
final year = int.parse(parts[0]);
final month = int.parse(parts[1]);
final day = int.parse(parts[2]);
final date = DateTime(year, month, day);
return date.year == year && date.month == month && date.day == day;
} else {
DateTime.parse(value);
}
return true;
} catch (e) {
return false;
}
}