Create and manipulate paginations fast and easy.
- Handle offset based paginations
- Get calculated page numbers (first, previous, next, last)
- Get calculated total pages
- TypeScript declarations ♥
- 50+ tests
import { OffsetPagination } from '@jalik/pagination-helper'
// Creates the pagination.
const pagination = new OffsetPagination({
// Set the limit per page.
limit: 10,
// (optional) Set the maxmimum value for limit.
// maxLimit will be used if limit is above when calling setLimit().
maxLimit: 100,
// (optional) Set the first page (1 by default)
minPage: 1,
// (optional) Set the initial offset (0 by default).
offset: 0,
// (optional) set the initial offset using a page number.
// If present, it will be used instead of offset.
page: 1,
// Set the total number of elements.
// Pass 0 if you don't have the value initially, then call setTotalElements() later.
totalElements: 200
})
// Returns a boolean indicating if both paginations are equal.
pagination.equals(new OffsetPagination({ limit: 15, page: 1, totalElements: 200 }))
// Returns the closest valid page (first/last), or the input page if valid.
pagination.getClosestPage(42)
// Returns the first page (see minPage option)
pagination.getFirstPage()
// Returns the last page.
pagination.getLastPage()
// Returns the current limit.
pagination.getLimit()
// Returns the maximum value for limit.
pagination.getMaxLimit()
// Returns the next page.
pagination.getNextPage()
// Returns the next nth page.
pagination.getNextPage(2)
// Returns the current offset.
pagination.getOffset()
// Returns the corresponding offset of a page.
pagination.getOffsetFromPage(5)
// Returns the current page.
pagination.getPage()
// Returns the corresponding page of an offset.
pagination.getPageFromOffset(20)
// Returns the previous page.
pagination.getPreviousPage()
// Returns the previous nth page.
pagination.getPreviousPage(2)
// Returns the total number of elements of the pagination.
pagination.getTotalElements()
// Returns the page count.
pagination.getTotalPages()
// Checks if there is a page after.
pagination.hasNext()
// Checks if there are two pages after.
pagination.hasNext(2)
// Checks if there is a page before.
pagination.hasPrevious()
// Checks if there are two pages before.
pagination.hasPrevious(2)
// Checks if page is between first page (included) and last page (included).
pagination.isPageValid(50)
// Update offset using next page (if available).
pagination.next()
// Update offset using previous page (if available).
pagination.previous()
// Sets the pagination limit (used to calculate page count).
pagination.setLimit(25)
// Sets the offset (used to calculate the page.
// Note: you may prefer to use setPage() instead of setOffset().
pagination.setOffset(20)
// Sets the current page (same as setOffset(20)).
pagination.setPage(2)
// Sets the total number of elements.
pagination.setTotalElements(999)
History of releases is in the changelog.
The code is released under the MIT License.