decodeMap<T extends Map<String, V>? , V> function
T
decodeMap<T extends Map<String, V>? , V>(})
Implementation
T decodeMap<T extends Map<String, V>?, V>(
dynamic raw, V Function(dynamic, String?) decode,
{String? name}) {
if (raw is Map<String, dynamic>) {
return raw.map((key, value) =>
MapEntry(key, decode(value, name?.apply((n) => '$n.$key')))) as T;
} else if (TypeCheck<T>().isNullable && raw == null) {
return null as T;
} else {
throw CodecException.typeMismatch(T, raw.runtimeType, name);
}
}