diff method
Future<Map<String, DVFieldChange> >
diff(
- DVContentVersion<
T> version, { - DVContentVersion<
T> ? against,
The top-level fields version changes relative to against, or to the
published version when against is null.
Implementation
Future<Map<String, DVFieldChange>> diff(
DVContentVersion<T> version, {
DVContentVersion<T>? against,
}) async {
final DVContentVersion<T>? base =
against ?? await current(version.documentId);
final Map<String, Object?> before = base == null
? const <String, Object?>{}
: _encode(base.document);
final Map<String, Object?> after = _encode(version.document);
return <String, DVFieldChange>{
for (final String key in <String>{...before.keys, ...after.keys})
if (_canonicalJson(before[key]) != _canonicalJson(after[key]))
key: DVFieldChange(from: before[key], to: after[key]),
};
}