https://github.com/writetome51/array-paginator
A Typescript/Javascript class for paginating an array
https://github.com/writetome51/array-paginator
array-manipulations javascript pagination paginator typescript
Last synced: 8 months ago
JSON representation
A Typescript/Javascript class for paginating an array
- Host: GitHub
- URL: https://github.com/writetome51/array-paginator
- Owner: writetome51
- License: mit
- Created: 2018-09-20T22:56:07.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-09-03T22:06:10.000Z (about 2 years ago)
- Last Synced: 2025-02-03T06:19:19.082Z (8 months ago)
- Topics: array-manipulations, javascript, pagination, paginator, typescript
- Language: JavaScript
- Homepage:
- Size: 130 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ArrayPaginator\
A TypeScript class for paginating an array.
## API
```ts
export type ArrayPaginatorSettings = {
/*****
Defaults to most recent setting, or if not set, empty array
*****/
array?: T[];/*****
Defaults to most recent setting, or if not set, 25
*****/
pageLength?: number;/*****
Defaults to most recent setting, or if not set, 1
*****/
pageNumber?: number;
};export type ArrayPaginatorData = Omit<
Required>,
'array'
>
& {
pageTotal: number;
page: T[];
};export declare class ArrayPaginator {
get data(): ArrayPaginatorData;
constructor(settings?: ArrayPaginatorSettings);
set(settings?: ArrayPaginatorSettings): void;
}
```## Usage Examples
```ts
// Get an instance:
const paginator = new ArrayPaginator({
array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
pageLength: 5
});console.log(paginator.data);
/*****
{
pageLength: 5
pageNumber: 1
pageTotal: 2
page: [1,2,3,4,5]
}
*****/paginator.set({pageLength: 4});
console.log(paginator.data);
/*****
{
pageLength: 4
pageNumber: 1
pageTotal: 3
page: [1,2,3,4]
}
*****/paginator.set({pageNumber: 2});
console.log(paginator.data);
/*****
{
pageLength: 4
pageNumber: 2
pageTotal: 3
page: [5,6,7,8]
}
*****/paginator.set({pageLength: 20, pageNumber: 1});
console.log(paginator.data);
/*****
{
pageLength: 20
pageNumber: 1
pageTotal: 1
page: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}
*****/// Since the total array length is only 10, trying to get a second page results in error:
paginator.set({pageNumber: 2});
// 'Error: The requested page does not exist'```
## Installation
```bash
npm i @writetome51/array-paginator
```## Loading
```js
import {ArrayPaginator} from '@writetome51/array-paginator';
```## License
[MIT](https://choosealicense.com/licenses/mit/)