UNPKG

firewalk

Version:

A collection traversal library for Firestore

20 lines (19 loc) 1.48 kB
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>; }