deepMerge function

dynamic deepMerge(
  1. dynamic original,
  2. dynamic overrides
)

Implementation

dynamic deepMerge(dynamic original, dynamic overrides) {
  if (original is Map && overrides is Map) {
    final result = Map.from(original);
    overrides.forEach((key, value) {
      if (result.containsKey(key)) {
        result[key] = deepMerge(result[key], value);
      } else {
        result[key] = value;
      }
    });
    return result;
  } else if (original is List && overrides is List) {
    return deepMergeLists(original, overrides);
  } else {
    return overrides;
  }
}