Skip to content
This repository was archived by the owner on Oct 12, 2024. It is now read-only.

Commit 2d24f61

Browse files
committed
Update
1 parent 802c4e8 commit 2d24f61

File tree

1 file changed

+8
-27
lines changed

1 file changed

+8
-27
lines changed

lib/src/collections/src/merge.dart

+8-27
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'dart:collection' show Queue;
1414

1515
import 'package:collection/collection.dart' show mergeMaps;
1616

17+
import '../../../xyz_utils.dart';
1718

1819
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1920

@@ -89,36 +90,16 @@ dynamic mergeDataDeep(
8990
return elseFilter?.call(b) ?? b;
9091
}
9192

92-
/// Merges all [jsons].
93-
Map<String, dynamic> mergeJson(List<Map<String, dynamic>> jsons) {
94-
var merged = <String, dynamic>{};
95-
for (final map in jsons) {
96-
final temp = letMap<String, dynamic>(_mergeJson(merged, map));
93+
/// Merges all [maps] deeply.
94+
Map<K, V> mergeMapsDeep<K, V>(List<Map<K, V>> maps) {
95+
var a = <K, V>{};
96+
for (final b in maps) {
97+
final temp = letMap<K, V>(mergeDataDeep(a, b));
9798
if (temp != null) {
98-
merged = temp;
99+
a = temp;
99100
}
100101
}
101-
return merged;
102-
}
103-
104-
Map<String, dynamic> _mergeJson(
105-
Map<String, dynamic> map1, Map<String, dynamic> map2,) {
106-
final result = Map<String, dynamic>.from(map1);
107-
108-
map2.forEach((key, value) {
109-
if (result.containsKey(key)) {
110-
if (value is Map<String, dynamic> &&
111-
result[key] is Map<String, dynamic>) {
112-
result[key] = _mergeJson(result[key], value);
113-
} else {
114-
result[key] = value;
115-
}
116-
} else {
117-
result[key] = value;
118-
}
119-
});
120-
121-
return result;
102+
return a;
122103
}
123104

124105
/// Merges two data structures deeply and tries to perform toJson on objects.

0 commit comments

Comments
 (0)