passes method
Validates the value using the given context.
Returns true if valid, otherwise false.
Implementation
@override
FutureOr<bool> passes(ValidationContext context) async {
final args = context.parameters;
final value = context.value;
final pattern = _pattern ?? (args.isNotEmpty ? args.join(',') : null);
if (pattern == null) return true;
if (value is! String) return false;
try {
return await Isolate.run(() {
final regex = RegExp(pattern);
return regex.hasMatch(value);
}).timeout(const Duration(milliseconds: 150));
} on TimeoutException {
return false;
} catch (_) {
return false;
}
}