byNameCaseInsensitive<T extends Enum> static method

T Function(dynamic) byNameCaseInsensitive<T extends Enum>(
  1. List<T> values
)

Creates a parser that matches names case-insensitively.

Both the input and enum names are lowercased before comparison. Useful for APIs that inconsistently return PENDING, Pending, or pending.

Throws ArgumentError if no matching enum value is found.

Implementation

static T Function(dynamic) byNameCaseInsensitive<T extends Enum>(
  List<T> values,
) => (dynamic obj) {
  final str = obj.toString().trim().toLowerCase();
  return values.firstWhere(
    (e) => e.name.toLowerCase() == str,
    orElse: () => throw ArgumentError('Invalid enum value: $obj'),
  );
};