toDoc<T> method
Doc<T>?
toDoc<
T>( - Rev rev,
- T fromT(
- Map<String, dynamic> json
), {
- required dynamic revLimit,
- bool showRevision = false,
- bool showRevInfo = false,
- dynamic showConflicts = false,
})
Implementation
Doc<T>? toDoc<T>(Rev rev, T Function(Map<String, dynamic> json) fromT,
{required revLimit,
bool showRevision = false,
bool showRevInfo = false,
showConflicts = false}) {
final doc = docs[rev.toString()];
if (doc == null) {
return null;
}
Revisions? _revisions = getRevision(rev);
List<RevsInfo>? _revsInfo;
if (_revisions == null) {
return null;
}
if (showRevInfo == true && winnerRev == rev) {
_revsInfo = [];
var index = _revisions.start;
for (final id in _revisions.ids) {
final rev = Rev(index: index, md5: id);
if (docs[rev.toString()] != null) {
_revsInfo.add(RevsInfo(rev: rev, status: 'available'));
} else {
_revsInfo.add(RevsInfo(rev: rev, status: 'missing'));
}
index -= 1;
}
}
return Doc(
id: id,
model: fromT(doc.data),
rev: doc.rev,
deleted: doc.deleted,
revisions: showRevision
? Revisions(
start: _revisions.start,
ids: _revisions.ids
.sublist(0, min(revLimit, _revisions.ids.length)))
: null,
revsInfo: _revsInfo,
deletedConflicts: showConflicts && deletedConflicts.length > 0
? deletedConflicts.map((e) => e.rev).toList()
: null,
conflicts: showConflicts && conflicts.length > 0
? conflicts.map((e) => e.rev).toList()
: null);
}