@@ -14,6 +14,7 @@ import 'dart:collection' show Queue;
14
14
15
15
import 'package:collection/collection.dart' show mergeMaps;
16
16
17
+ import '../../../xyz_utils.dart' ;
17
18
18
19
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
19
20
@@ -89,36 +90,16 @@ dynamic mergeDataDeep(
89
90
return elseFilter? .call (b) ?? b;
90
91
}
91
92
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 ));
97
98
if (temp != null ) {
98
- merged = temp;
99
+ a = temp;
99
100
}
100
101
}
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;
122
103
}
123
104
124
105
/// Merges two data structures deeply and tries to perform toJson on objects.
0 commit comments