An open API service indexing awesome lists of open source software.

https://github.com/aboutbits/pagination


https://github.com/aboutbits/pagination

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

Pagination
==========

[![npm package](https://badge.fury.io/js/%40aboutbits%2Fpagination.svg)](https://badge.fury.io/js/%40aboutbits%2Fpagination)
[![license](https://img.shields.io/github/license/aboutbits/pagination)](https://github.com/aboutbits/pagination/blob/master/license.md)

This pagacke includes a pagination calculation, where you can simply pass some basic information to the calcualtion function, and in return you receive an object with all relevant pagination information.

## Table of content

- [Usage](#usage)
- [Build & Publish](#build--publish)
- [Information](#information)

## Usage

First, you have to install the package:

```bash
npm install @aboutbits/pagination
```

Second, you can call the calculate function by passing the following information:

- `page`: The current page
- `size`: The amount of items shown per page
- `total`: The amount of total items in the list/collection
- `config`: A configuration object containing the following possible configuration values:
- `indexType`: The starting point of the pagination (default: IndexType.ONE_BASED)
- `maxPages`: The maximum amount of pages that should be shown (default: 5)

In return, you receive an object with all relevant information:

```js
import { calculatePagination } from '@aboutbits/pagination'

let pagination = calculatePagination(1, 5, 100)

console.log(pagination)
```

This would return the following object:

```json
{
"previous": {
"indexNumber": 1,
"isDisabled": true
},
"next": {
"indexNumber": 2,
"isDisabled": false
},
"pages": [
{
"indexNumber": 1,
"displayNumber": 1,
"isCurrent": true
},
{
"indexNumber": 2,
"displayNumber": 2,
"isCurrent": false
},
{
"indexNumber": 3,
"displayNumber": 3,
"isCurrent": false
},
{
"indexNumber": 4,
"displayNumber": 4,
"isCurrent": false
},
{
"indexNumber": 5,
"displayNumber": 5,
"isCurrent": false
}
]
}
```

## Build & Publish

To build and publish the package, visit the GitHub Actions page of the repository.

You can choose between two workflows:
- `Release Package` to publish a new version of the package.
- `Pre-Release Package` to publish a new pre-release version of the package.

**Note:** Pre-releases need to be supplied with a pre-id.

**Note:** To increment a pre-release, you have to run the normal release workflow and select "prerelease". For this action you need to already be on a pre-release version.

## Information

About Bits is a company based in South Tyrol, Italy. You can find more information about us on [our website](https://aboutbits.it).

### Support

For support, please contact [info@aboutbits.it](mailto:info@aboutbits.it).

### Credits

- [Alex Lanz](https://github.com/alexlanz)
- [Martin Malfertheiner](https://github.com/mmalfertheiner)
- [All Contributors](../../contributors)

### License

The MIT License (MIT). Please see the [license file](license.md) for more information.