toEnum<T> static method

T toEnum<T>(
  1. dynamic value,
  2. List<T> enums, {
  3. T? defaultValue,
})

Parse input value to String and then to enum. Parsing is case insensitive. If enum of given name is not found, defaultValue or first value from enums is returned.

Implementation

static T toEnum<T>(dynamic value, List<T> enums, {T? defaultValue}) {
  if (value == null) {
    return defaultValue ?? enums[0];
  }

  final name = string(value).toLowerCase();

  return enums.firstWhere((item) => fromEnum(item)!.toLowerCase() == name,
      orElse: () => defaultValue ?? enums[0]);
}