safeUnion function

Map<String, dynamic> safeUnion(
  1. Iterable<Map<String, dynamic>?> items
)

Implementation

Map<String, dynamic> safeUnion(Iterable<Map<String, dynamic>?> items) {
  var out = <String, dynamic>{};
  for (var i in items) {
    if (i == null) continue;
    for (var k in out.keys.toSet().intersection(i.keys.toSet())) {
      if (out[k] != i[k]) {
        throw ArgumentError('Dublicate key `$k`');
      }
    }
    out.addAll(i);
  }
  return out;
}