page method

  1. @override
Future<List<Map<String, dynamic>>> page(
  1. String table, {
  2. required int limit,
  3. required int skip,
  4. OrderBy? orderBy,
})
override

Return list of paginated data.

Implementation

@override
Future<List<Map<String, dynamic>>> page(
  String table, {
  required int limit,
  required int skip,
  OrderBy? orderBy,
}) async {
  final data = [..._ref(table)];

  if (orderBy != null) {
    data.sort((d1, d2) {
      final dynamic value1 = d1[orderBy.key];
      final dynamic value2 = d2[orderBy.key];

      if (orderBy.ascending) {
        if (value1 is Comparable) {
          return value1.compareTo(value2);
        }
      } else {
        if (value2 is Comparable) {
          return value2.compareTo(value1);
        }
      }

      return 0;
    });
  }
  return data.skip(skip).take(limit).toList();
}