get<T extends Object?> static method

T? get<T extends Object?>({
  1. String? key,
  2. String? path,
  3. String? name,
  4. T? defaultValue,
  5. bool applyTranslator = true,
  6. List<String> autoTranslatorFields = const [],
  7. T? parser(
    1. Object?
    )?,
})

Implementation

static T? get<T extends Object?>({
  String? key,
  String? path,
  String? name,
  T? defaultValue,
  bool applyTranslator = true,
  List<String> autoTranslatorFields = const [],
  T? Function(Object?)? parser,
}) {
  Object? localed;
  if ((key ?? '').isNotEmpty) {
    localed = i._trx(
      key!,
      name: name,
      defaultValue: defaultValue,
      applyTranslator: applyTranslator,
      autoTranslatorFields: autoTranslatorFields,
    );
    applyTranslator = applyTranslator && localed == null;
    localed ??= i._l(path: path);
  } else {
    localed = i._l(path: path);
  }
  if (localed is! Map && localed is! Iterable && localed is T) return localed;
  if (localed == null) {
    if (defaultValue is T) return defaultValue;
    localed = defaultValue;
  }
  if (applyTranslator) {
    localed = i._tr(
      localed,
      true,
      autoTranslatorFields: autoTranslatorFields,
    );
  }
  if (localed is T) return localed;
  if (parser != null) return parser(localed);
  return null;
}