@flatfile/safe-api
Version:
Flatfile Safe API client with streaming capabilities
49 lines (48 loc) • 1.44 kB
TypeScript
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>;
}