passes method

  1. @override
FutureOr<bool> passes(
  1. ValidationContext context
)
override

Validates the value using the given context.

Returns true if valid, otherwise false.

Implementation

@override
FutureOr<bool> passes(ValidationContext context) {
  final value = context.value;
  if (value == null) return false;
  if (value is! String) return false;

  // Strict regex for UUID v1-v5
  // xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
  // M is version (1-5), N is variant (8, 9, a, b)
  final uuidRegex = RegExp(
    r'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$',
    caseSensitive: false,
  );

  return uuidRegex.hasMatch(value);
}