deepMergeMap function

Map<String, dynamic> deepMergeMap(
  1. Map<String, dynamic> a,
  2. Map<String, dynamic> b
)

Implementation

Map<String, dynamic> deepMergeMap(Map<String, dynamic> a, Map<String, dynamic> b) {
  b.forEach((k, v) {
    if (!a.containsKey(k)) {
      a[k] = v;
    } else {
      // TODO handle List type
      if (a[k] is Map) {
        deepMergeMap(a[k], b[k]);
      } else {
        a[k] = b[k];
      }
    }
  });

  return a;
}