UNPKG

@flatfile/safe-api

Version:

Flatfile Safe API client with streaming capabilities

49 lines (48 loc) 1.44 kB
import { ProgressTracker } from "../progress.tracker"; import { GetRequest } from "./get.request"; export declare class PaginatedCollection<T> implements PromiseLike<T[]> { protected factory: (page: number, pageSize: number) => GetRequest<T[]>; protected options?: { getCounts?: () => GetRequest<number>; pageSize?: number; } | undefined; /** * Default page size of 1000 * @private */ protected pageSize: number; /** * Register a progress tracker * @private */ private _tracker?; constructor(factory: (page: number, pageSize: number) => GetRequest<T[]>, options?: { getCounts?: () => GetRequest<number>; pageSize?: number; } | undefined); /** * Provide a progress tracking callback */ track(tracker: ProgressTracker): void; /** * Get all pages as fast as the rate limiter allows vs default sequential */ protected _asap: boolean; asap(): void; /** * Do something with each record as they're loaded (can help save memory) */ map<K>(cb: (record: T) => K): Promise<K[]>; /** * Wait for all records (this will pool in memory, be careful) */ all(): Promise<T[]>; private run; /** * When awaited, actually run the stuff * * @param resolve * @param reject */ then(resolve: (res: T[]) => any, reject?: (err: any) => any): Promise<any>; }