deepMerge method

Map<K, V> deepMerge(
  1. Map<K, V> other
)

Recursively merges two maps.

Nested maps are merged key-by-key; any other value from other wins.

Implementation

Map<K, V> deepMerge(Map<K, V> other) {
  final result = Map<K, V>.from(this);
  other.forEach((key, value) {
    final existing = result[key];
    if (existing is Map && value is Map) {
      result[key] = Map<dynamic, dynamic>.from(existing)
          .deepMerge(Map<dynamic, dynamic>.from(value)) as V;
    } else {
      result[key] = value;
    }
  });
  return result;
}