gets<T extends Object?> static method
Implementation
static List<T> gets<T extends Object?>({
String? key,
String? path,
String? name,
List<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 Iterable<T>) return localed.toList();
if (localed == null) {
if (defaultValue != null) return defaultValue;
localed = defaultValue;
}
if (applyTranslator) {
localed = i._tr(
localed,
true,
autoTranslatorFields: autoTranslatorFields,
);
}
if (localed is! Iterable) return defaultValue ?? [];
final parsed = localed.map((e) {
if (e is T) return e;
if (parser != null) return parser(e);
return null;
});
final filtered = parsed.whereType<T>().toList();
return filtered;
}