queryMerge function
Implementation
Map<String, dynamic> queryMerge(Map<String, dynamic>? queryA, Map<String, dynamic>? queryB) {
assert(queryA != null || queryB != null, "You must provide at least one argument");
if (queryA == null) return queryB!;
if (queryB == null) return queryA;
final decodedA = queryA.map((key, value) {
try {
/// we will try to decode as JSON the value
final decoded = jsonDecode(value);
return MapEntry(key, decoded);
} catch (e) {
return MapEntry(key, value);
}
});
final decodedB = queryB.map(
(key, value) {
try {
/// we will try to decode as JSON the value
final decoded = jsonDecode(value);
return MapEntry(key, decoded);
} catch (e) {
return MapEntry(key, value);
}
},
);
final newMap = deepMergeMap(
decodedA,
decodedB,
// value: (p0, p1) {},
);
return newMap.map((key, value) {
if (value is String) {
return MapEntry(key, value);
} else {
return MapEntry(key, jsonEncode(value));
}
});
}