Pager class for iterating through paginated results.

Type Parameters

  • T

Implements

  • AsyncIterable<T>

Constructors

  • Type Parameters

    • T

    Parameters

    • name: PagedItem
    • request: (params: PagedItemConfig) => Promise<PagedItemResponse<T>>
    • response: PagedItemResponse<T>
    • params: PagedItemConfig

    Returns Pager<T>

Accessors

  • get name(): PagedItem

    Returns the type of paged item (for example, batch_jobs).

    Returns PagedItem

  • get page(): T[]

    Returns the current page, which is a list of items.

    Returns T[]

    The first page is retrieved when the pager is created. The returned list of items could be a subset of the entire list.

  • get pageLength(): number

    Returns the total number of items in the current page.

    Returns number

  • get pageSize(): number

    Returns the length of the page fetched each time by this pager.

    Returns number

    The number of items in the page is less than or equal to the page length.

  • get params(): PagedItemConfig

    Returns the parameters when making the API request for the next page.

    Returns PagedItemConfig

    Parameters contain a set of optional configs that can be used to customize the API request. For example, the pageToken parameter contains the token to request the next page.

Methods

  • Returns an async iterator that support iterating through all items retrieved from the API.

    Returns AsyncIterator<T>

    The iterator will automatically fetch the next page if there are more items to fetch from the API.

    const pager = await ai.files.list({config: {pageSize: 10}});
    for await (const file of pager) {
    console.log(file.name);
    }
  • Returns the item at the given index.

    Parameters

    • index: number

    Returns T

  • Returns true if there are more pages to fetch from the API.

    Returns boolean

  • Fetches the next page of items. This makes a new API request.

    Returns Promise<T[]>

    If there are no more pages to fetch.

    const pager = await ai.files.list({config: {pageSize: 10}});
    let page = pager.page;
    while (true) {
    for (const file of page) {
    console.log(file.name);
    }
    if (!pager.hasNextPage()) {
    break;
    }
    page = await pager.nextPage();
    }
MMNEPVFCICPMFPCPTTAAATR