knex-paginate
v3.1.4
Published
Extension of Knex's query builder with `paginate` method that will help with your pagination tasks.
Downloads
80,657
Readme
Knex-paginate
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
.