UNPKG

firewalk

Version:

A collection traversal library for Firestore

20 lines (19 loc) 1.98 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<AppModelType = firestore.DocumentData, DbModelType extends firestore.DocumentData = firestore.DocumentData> = (...args: Parameters<BatchCallback<AppModelType, DbModelType>>) => void | Promise<void> | OnAfterBatchProcess | Promise<OnAfterBatchProcess>; export declare abstract class AbstractTraverser<AppModelType = firestore.DocumentData, DbModelType extends firestore.DocumentData = firestore.DocumentData> implements Traverser<AppModelType, DbModelType> { #private; readonly traversalConfig: TraversalConfig; protected readonly exitEarlyPredicates: ExitEarlyPredicate<AppModelType, DbModelType>[]; protected static readonly baseConfig: TraversalConfig; protected static readonly baseTraverseEachConfig: TraverseEachConfig; protected constructor(traversalConfig: TraversalConfig, exitEarlyPredicates: ExitEarlyPredicate<AppModelType, DbModelType>[]); traverseEach(callback: TraverseEachCallback<AppModelType, DbModelType>, config?: Partial<TraverseEachConfig>): Promise<TraversalResult>; protected runTraversal(processBatch: BatchProcessor<AppModelType, DbModelType>): Promise<TraversalResult>; protected shouldExitEarly(batchDocs: firestore.QueryDocumentSnapshot<AppModelType, DbModelType>[], batchIndex: number): boolean; abstract readonly traversable: Traversable<AppModelType, DbModelType>; abstract withConfig(config: Partial<TraversalConfig>): Traverser<AppModelType, DbModelType>; abstract withExitEarlyPredicate(predicate: ExitEarlyPredicate<AppModelType, DbModelType>): Traverser<AppModelType, DbModelType>; abstract traverse(callback: BatchCallback<AppModelType, DbModelType>): Promise<TraversalResult>; }