knex-paginate
TypeScript icon, indicating that this package has built-in type declarations

3.1.4 • Public • Published

Knex-paginate

npm CI

Extension of Knex's query builder with paginate method that will help with your pagination tasks.

How to set up

To use this lib, first you will have to install it:

npm i knex-paginate --save
// or
yarn add knex-paginate

Then, add the following lines to your Knex set up:

const knex = require('knex')(config);

const { attachPaginate } = require('knex-paginate');
attachPaginate();

Function definition

.paginate(params: IPaginateParams): Knex.QueryBuilder<any, IWithPagination<TResult>>;

interface IPaginateParams {
  perPage: number,
  currentPage: number,
  isFromStart?: boolean,
  isLengthAware?: boolean,
}

interface IWithPagination<T = any> {
  data: T;
  pagination: IPagination;
}

interface IPagination {
  total?: number;
  lastPage?: number;
  currentPage: number;
  perPage: number;
  from: number;
  to: number;
}

How to use

Example

const result = await knex('persons')
   .paginate({ perPage: 10, currentPage: 2 });
// result.data - will hold persons data
// result.pagination - will hold pagination object

pagination object

Key Value
perPage Items per page.
currentPage Current page number.
from Counting ID of the first item of the current page.
to Counting ID of the last item of the current page.

Returned if isLengthAware == true or currentPage == 1 or isFromStart == true:

Key Value
total Total items that the full query contains.
lastPage Last page number.

This lib got inspiration from knex-paginator.

Package Sidebar

Install

npm i knex-paginate

Weekly Downloads

20,120

Version

3.1.4

License

ISC

Unpacked Size

8.22 kB

Total Files

5

Last publish

Collaborators

  • felixmosh