# ArraySource

`class` in `gateway` · v0.5.1

<https://docs.seedcord.org/packages/gateway/0.5.1/classes/array-source>

A source for a bounded list you can load whole. It loads the full list on every click, then slices the page, so the real total is known (a real last button, "Page X of Y"). Cache inside your loader if the load is expensive.

```ts
class ArraySource<Item> extends ArraySourceBase<Item, PageContext>
```

## Constructors

### constructor

```ts
ArraySourceBase(
    load: (ctx: Ctx) => Promisable<readonly Item[]>,
    opts?: { perPage?: number }
)
```

Constructs a new instance of the `ArraySourceBase` class

## Methods

### page

```ts
async page(
    ctx: Ctx,
    n: number
): Promise<PageView<Item>>
```
