UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

208 lines • 8.39 kB
import { FinalRequestOptions } from "../internal/request-options.mjs"; import { type BaseCloudflare } from "../client.mjs"; import { APIPromise } from "./api-promise.mjs"; import { type APIResponseProps } from "../internal/parse.mjs"; export type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>; export declare abstract class AbstractPage<Item> implements AsyncIterable<Item> { #private; protected options: FinalRequestOptions; protected response: Response; protected body: unknown; constructor(client: BaseCloudflare, response: Response, body: unknown, options: FinalRequestOptions); abstract nextPageRequestOptions(): PageRequestOptions | null; abstract getPaginatedItems(): Item[]; hasNextPage(): boolean; getNextPage(): Promise<this>; iterPages(): AsyncGenerator<this>; [Symbol.asyncIterator](): AsyncGenerator<Item>; } /** * This subclass of Promise will resolve to an instantiated Page once the request completes. * * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg: * * for await (const item of client.items.list()) { * console.log(item) * } */ export declare class PagePromise<PageClass extends AbstractPage<Item>, Item = ReturnType<PageClass['getPaginatedItems']>[number]> extends APIPromise<PageClass> implements AsyncIterable<Item> { constructor(client: BaseCloudflare, request: Promise<APIResponseProps>, Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass); /** * Allow auto-paginating iteration on an unawaited list call, eg: * * for await (const item of client.items.list()) { * console.log(item) * } */ [Symbol.asyncIterator](): AsyncGenerator<Item>; } export interface V4PagePaginationResponse<Item> { result: V4PagePaginationResponse.Result<Item>; result_info: V4PagePaginationResponse.ResultInfo; } export declare namespace V4PagePaginationResponse { interface Result<Item> { items?: Array<Item>; } interface ResultInfo { page?: number; per_page?: number; } } export interface V4PagePaginationParams { page?: number; per_page?: number; } export declare class V4PagePagination<Item> extends AbstractPage<Item> implements V4PagePaginationResponse<Item> { result: V4PagePaginationResponse.Result<Item>; result_info: V4PagePaginationResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: V4PagePaginationResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface V4PagePaginationArrayResponse<Item> { result: Array<Item>; result_info: V4PagePaginationArrayResponse.ResultInfo; } export declare namespace V4PagePaginationArrayResponse { interface ResultInfo { page?: number; per_page?: number; } } export interface V4PagePaginationArrayParams { page?: number; per_page?: number; } export declare class V4PagePaginationArray<Item> extends AbstractPage<Item> implements V4PagePaginationArrayResponse<Item> { result: Array<Item>; result_info: V4PagePaginationArrayResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: V4PagePaginationArrayResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface CursorPaginationResponse<Item> { result: Array<Item>; result_info: CursorPaginationResponse.ResultInfo; } export declare namespace CursorPaginationResponse { interface ResultInfo { count?: number; cursor?: string; per_page?: number; } } export interface CursorPaginationParams { per_page?: number; cursor?: string; } export declare class CursorPagination<Item> extends AbstractPage<Item> implements CursorPaginationResponse<Item> { result: Array<Item>; result_info: CursorPaginationResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: CursorPaginationResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface CursorPaginationAfterResponse<Item> { result: Array<Item>; result_info: CursorPaginationAfterResponse.ResultInfo; } export declare namespace CursorPaginationAfterResponse { interface ResultInfo { cursors?: ResultInfo.Cursors; } namespace ResultInfo { interface Cursors { after?: string; } } } export interface CursorPaginationAfterParams { cursor?: string; } export declare class CursorPaginationAfter<Item> extends AbstractPage<Item> implements CursorPaginationAfterResponse<Item> { result: Array<Item>; result_info: CursorPaginationAfterResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: CursorPaginationAfterResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface CursorLimitPaginationResponse<Item> { result: Array<Item>; result_info: CursorLimitPaginationResponse.ResultInfo; } export declare namespace CursorLimitPaginationResponse { interface ResultInfo { count?: number; cursor?: string; per_page?: number; } } export interface CursorLimitPaginationParams { limit?: number; cursor?: string; } export declare class CursorLimitPagination<Item> extends AbstractPage<Item> implements CursorLimitPaginationResponse<Item> { result: Array<Item>; result_info: CursorLimitPaginationResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: CursorLimitPaginationResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface ContainersInstancesV1PaginationResponse<Item> { result: ContainersInstancesV1PaginationResponse.Result<Item>; result_info: ContainersInstancesV1PaginationResponse.ResultInfo; } export declare namespace ContainersInstancesV1PaginationResponse { interface Result<Item> { instances?: Array<Item>; } interface ResultInfo { next_page_token?: string; page_token?: string; per_page?: number; } } export interface ContainersInstancesV1PaginationParams { per_page?: number; page_token?: string; } export declare class ContainersInstancesV1Pagination<Item> extends AbstractPage<Item> implements ContainersInstancesV1PaginationResponse<Item> { result: ContainersInstancesV1PaginationResponse.Result<Item>; result_info: ContainersInstancesV1PaginationResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: ContainersInstancesV1PaginationResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface PageTokenPaginationResponse<Item> { result: Array<Item>; result_info: PageTokenPaginationResponse.ResultInfo; } export declare namespace PageTokenPaginationResponse { interface ResultInfo { next_page_token?: string; page_token?: string; per_page?: number; } } export interface PageTokenPaginationParams { per_page?: number; page_token?: string; } export declare class PageTokenPagination<Item> extends AbstractPage<Item> implements PageTokenPaginationResponse<Item> { result: Array<Item>; result_info: PageTokenPaginationResponse.ResultInfo; constructor(client: BaseCloudflare, response: Response, body: PageTokenPaginationResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface SinglePageResponse<Item> { result: Array<Item>; } export declare class SinglePage<Item> extends AbstractPage<Item> implements SinglePageResponse<Item> { result: Array<Item>; constructor(client: BaseCloudflare, response: Response, body: SinglePageResponse<Item>, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } //# sourceMappingURL=pagination.d.mts.map