# paginate

`function` in `kit` · v0.2.0

<https://docs.seedcord.org/packages/kit/0.2.0/functions/paginate>

Pure page math, usable headless. Clamps `page` into range and slices the window.

```ts
paginate<Item>(
    items: readonly Item[],
    page: number,
    perPage: number
): PageView<Item>
```

Pure page math, usable headless. Clamps `page` into range and slices the window.

Parameters.

- `items` `readonly Item[]` — The full list to page over.
- `page` `number` — The requested zero-based page, clamped into `[0, totalPages - 1]`.
- `perPage` `number` — The page size. Must be a positive integer.

Returns `PageView<Item>`.
