getOrNull<T extends Object> method

T? getOrNull<T extends Object>(
  1. String key, {
  2. List<String>? aliases,
  3. String? abbr,
  4. T? defaultValue,
})

Implementation

T? getOrNull<T extends Object>(
  String key, {
  List<String>? aliases,
  String? abbr,
  T? defaultValue,
}) {
  if (!wasParsed(key, aliases: aliases, abbr: abbr)) {
    return defaultValue;
  }

  for (final key in [key, ...?aliases]) {
    if (values[key] case final T value) {
      return value;
    }
  }

  if (abbr?.substring(0, 1) case final String abbr) {
    if (abbrs[abbr] case final T value) {
      return value;
    }
  }

  return defaultValue;
}