mergeMaps static method

Map<String, dynamic> mergeMaps(
  1. Map<String, dynamic>? mapA,
  2. Map<String, dynamic> mapB
)

Recursive deep merge two maps

Implementation

static Map<String, dynamic> mergeMaps(
    Map<String, dynamic>? mapA, Map<String, dynamic> mapB) {
  if (mapA == null) {
    return mapB;
  }
  mapB.forEach((key, value) {
    if (!mapA.containsKey(key)) {
      mapA[key] = value;
    } else {
      if (mapA[key] is Map) {
        mergeMaps(mapA[key], mapB[key]);
      } else {
        mapA[key] = mapB[key];
      }
    }
  });
  return mapA;
}