apply<T extends DatumEntityInterface> static method
Applies query's filters, sorting, offset and limit to items.
Implementation
static List<T> apply<T extends DatumEntityInterface>(
List<T> items,
DatumQuery query,
) {
var filtered = items.where((item) {
final json = item.toDatumMap();
return matchesMap(json, query);
}).toList();
if (query.sorting.isNotEmpty) {
filtered.sort((a, b) => _compare(a.toDatumMap(), b.toDatumMap(), query.sorting));
}
if (query.offset != null) {
filtered = filtered.skip(query.offset!).toList();
}
if (query.limit != null) {
filtered = filtered.take(query.limit!).toList();
}
return filtered;
}