Skip to main content
Deno 2 is finally here 🎉️
Learn more

Pagination

A tiny package for Deno that calculates pagination values.

Usage

import { Pagination } from 'https://deno.land/x/pagination@v1.0.0/src/mod.ts';

const pagination = new Pagination({
    totalItems: 1000,
    itemsPerPage: 10,
    currentPage: 1,
});

pagination.totalPages; // 100

pagination.hasNextPage; // true

pagination.nextPage; // 2

pagination.pageList; // [1, 2, 3, 4, 5, "…", 100]

Constructor

Pagination()

Creates and returns a new pagination instance. It accepts optional configuration parameters.

Parameters

All configuration parameters are optional.

totalItems

Total number of items in your data set, defaults to 0.

currentPage

The currently selected page, defaults to 1.

itemsPerPage

Number of items being displayed on each page, defaults to 20.

maxPageDepth

Constrain the last page to a maximum depth, defaults to Infinity.

pageListSize

Size of the pageList array, defaults to "m". May be one of "xs" | "s" | "m" | "l" | "xl".

Instance properties

All properties are read only.

firstIndex

Index of the first item for the current page.

lastIndex

Index of the last item for the current page.

totalPages

The total number of pages.

firstPage

The number of the first page (always 1.)

lastPage

The number of the last page (optionally limited by the max depth.)

nextPage

The number of the next page or null if there is no next page.

previousPage

The number of the previous page or null if there is no previous page.

hasNextPage

Whether or not there is a next page.

hasPreviousPage

Whether or not there is a previous page.

isFirstPage

Whether or not the current page is the first page.

isLastPage

Whether or not the current page is the last page.

pageList

A list of page numbers to display based on the specified size.

Methods

.toJSON()

Returns all of the configuration parameters and properties as a single object.