compact method
Implementation
DocHistory compact(int limit) {
final newDocs = Map<String, InternalDoc>();
List<RevisionNode> newNodes = [];
leafDocs.forEach((doc) {
var i = 0;
newDocs[doc.rev.toString()] = doc;
Rev? currRev = doc.rev;
do {
var nodeToAdd = revisions.nodes
.firstWhere((element) => element.rev == currRev)
.copyWith();
++i;
if (i >= limit) {
nodeToAdd.prevRev = null;
}
newNodes.add(nodeToAdd);
currRev = nodeToAdd.prevRev;
} while (currRev != null);
});
return this
.copyWith(revisions: RevisionTree(nodes: newNodes), docs: newDocs);
}