asTOrNull<T> function
Convert any map value with key
to T or null safely.
Implementation
T? asTOrNull<T>(
Map<String, dynamic>? json,
String key,
) {
if (json == null || !json.containsKey(key)) {
if (0 is T) return 0 as T;
if (0.0 is T) return 0.0 as T;
if ('' is T) return '' as T;
if (false is T) return false as T;
if ([] is T) return [] as T;
if (<String, dynamic>{} is T) return <String, dynamic>{} as T;
return '' as T;
}
dynamic value = json[key];
if (value is T) return value;
if (0 is T) {
return toIntOrNull(value) as T;
} else if (0.0 is T) {
return toDoubleOrNull(value) as T;
} else if ('' is T) {
return toStringOrNull(
value,
) as T;
} else if (false is T) {
return toBoolOrNull(
value,
) as T;
} else if ([] is T) {
return toListOrNull(
value,
) as T;
} else if (<String, dynamic>{} is T) {
return toMapOrNull(
value,
) as T;
}
return null;
}