@dmgt/google-ad-manager-api
Version:
Typed Google Ad Manager API
41 lines (40 loc) • 1.05 kB
TypeScript
import { GetByStatementResponse } from './statement';
export interface PaginateOptions<T> {
/**
* The "LIMIT" passed to queries
*/
pageSize?: number;
startingOffset?: number;
/**
* If you want to make sure not to exceed your query quota,
* you can apply an interval inbetween each query
*/
interval?: number;
/**
* How to execute your query
*/
executeQuery(limit: number, offset: number): Promise<GetByStatementResponse<T>> | Promise<[GetByStatementResponse<T>, ...any[]]>;
}
/**
* Paginate queries.
*
* @see {@link PaginateOptions}
* @see {@link iterate}
* @example
* ```
* for await (const page of paginate({
* executeQuery: (limit, offset) =>
* query(
* client,
* 'getLineItemsByStatementAsync',
* { limit, offset }
* )
* })) {
* console.info(page.items)
* }
* ```
*/
export declare function paginate<T>({ executeQuery, interval, pageSize, startingOffset, }: PaginateOptions<T>): AsyncGenerator<{
items: T[];
pageNum: number;
}>;