collectAllPages
@mineflow/client-core / collectAllPages
Function: collectAllPages()
function collectAllPages<T>(fetchPage: (cursor: string | null) => Promise<CursorPage<T>>, opts?: object): Promise<T[]>;
Defined in: packages/client-core/src/pagination.ts:33
Стягивает все страницы курсорного списка в один массив, последовательно
передавая nextCursor следующему запросу, пока он не станет null.
maxPages — предохранитель от бесконечного цикла (по умолчанию 1000), чтобы
битый nextCursor не повесил UI. Подходит для экспорта/агрегаций; для UI с
листанием тяни страницы по одной.
Type Parameters
| Type Parameter | Description |
|---|---|
T | тип элемента списка. |
Parameters
| Parameter | Type | Description |
|---|---|---|
fetchPage | (cursor: string | null) => Promise<CursorPage<T>> | загрузчик страницы по курсору (null — первая страница). |
opts | { maxPages?: number; } | { maxPages } — потолок числа страниц (по умолчанию 1000). |
opts.maxPages? | number | - |
Returns
Promise<T[]>
плоский массив всех собранных элементов.
Example
const all = await collectAllPages((cursor) =>
unwrap(client.GET('/api/v1/eam/assets', { params: { query: { cursor: cursor ?? undefined } } })),
);