mergeProviderData function
Deeply merges namespaced provider data, with later values taking priority.
Implementation
Map<String, dynamic> mergeProviderData(
final Map<String, dynamic> first,
final Map<String, dynamic> second,
) {
final merged = <String, dynamic>{...first};
for (final entry in second.entries) {
final previous = merged[entry.key];
final next = entry.value;
merged[entry.key] =
previous is Map<String, dynamic> && next is Map<String, dynamic>
? mergeProviderData(previous, next)
: next;
}
return merged;
}