jsonDiffShallow function
Returns keys added, removed, or changed between a and b (one level).
Implementation
(Map<String, Object?> added, Map<String, Object?> removed, Map<String, Object?> changed)
jsonDiffShallow(Map<String, Object?> a, Map<String, Object?> b) {
final Map<String, Object?> removed = <String, Object?>{};
final Map<String, Object?> changed = <String, Object?>{};
for (final String k in a.keys) {
if (!b.containsKey(k)) {
removed[k] = a[k];
} else if (a[k] != b[k]) {
changed[k] = b[k];
}
}
final Map<String, Object?> added = <String, Object?>{};
for (final String k in b.keys) {
if (!a.containsKey(k)) added[k] = b[k];
}
return (added, removed, changed);
}