firewalk
Version:
A collection traversal library for Firestore
20 lines (19 loc) • 1.48 kB
TypeScript
import type { firestore } from 'firebase-admin';
import type { BatchCallback, ExitEarlyPredicate, Traversable, TraversalConfig, TraversalResult, TraverseEachCallback, TraverseEachConfig, Traverser } from '../../../api';
export type OnAfterBatchProcess = () => void | Promise<void>;
export type BatchProcessor<D> = (...args: Parameters<BatchCallback<D>>) => void | Promise<void> | OnAfterBatchProcess | Promise<OnAfterBatchProcess>;
export declare abstract class AbstractTraverser<D> implements Traverser<D> {
#private;
readonly traversalConfig: TraversalConfig;
protected readonly exitEarlyPredicates: ExitEarlyPredicate<D>[];
protected static readonly baseConfig: TraversalConfig;
protected static readonly baseTraverseEachConfig: TraverseEachConfig;
protected constructor(traversalConfig: TraversalConfig, exitEarlyPredicates: ExitEarlyPredicate<D>[]);
traverseEach(callback: TraverseEachCallback<D>, config?: Partial<TraverseEachConfig>): Promise<TraversalResult>;
protected runTraversal(processBatch: BatchProcessor<D>): Promise<TraversalResult>;
protected shouldExitEarly(batchDocs: firestore.QueryDocumentSnapshot<D>[], batchIndex: number): boolean;
abstract readonly traversable: Traversable<D>;
abstract withConfig(config: Partial<TraversalConfig>): Traverser<D>;
abstract withExitEarlyPredicate(predicate: ExitEarlyPredicate<D>): Traverser<D>;
abstract traverse(callback: BatchCallback<D>): Promise<TraversalResult>;
}