File size: 467 Bytes
3206347
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const paginateRest = async (query, page) => {
  const pageSize = 10;

  page = parseInt(page, 10);

  if (isNaN(page) || page < 1) {
    page = 1;
  }

  const [records, count] = await Promise.all([
    query.limit(pageSize).offset((page - 1) * pageSize),
    query.resultSize(),
  ]);

  return {
    pageInfo: {
      currentPage: page,
      totalPages: Math.ceil(count / pageSize),
    },
    totalCount: count,
    records,
  };
};

export default paginateRest;