cloudflare
Version:
The official TypeScript library for the Cloudflare API
208 lines • 8.39 kB
text/typescript
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