UNPKG

@tanstack/db

Version:

A reactive client store for building super fast apps on sync

48 lines (47 loc) 2.06 kB
import { CollectionSubscription } from '../../collection/subscription.js'; import { ChangeMessage, LoadSubsetRequestResult } from '../../types.js'; import { OrderByOptimizationInfo } from '../compiler/order-by.js'; /** Owns the conservative provider-loading policy for one ordered source. */ export declare class OrderedSourceLoader { private readonly info; private readonly subscription; private readonly alias; private readonly onResult; private pending; private hasSettledSourceRequest; private settledSourceBoundary; private needsFullSourceRecovery; private requesting; private fullSource; private settledFiniteAcquisitions; private failedRequest; private failedAcquisitions; private active; private generation; private lastPage; private lastPrefixCount; private lastBoundary; constructor(info: OrderByOptimizationInfo, subscription: CollectionSubscription, alias: string, onResult?: (result: LoadSubsetRequestResult, holdPublication: boolean) => void); /** Derive invalidation from actual contributions, not a second cursor. */ onSourceChanges(changes: Array<ChangeMessage<Record<string, unknown>, string | number>>, sentRows: ReadonlyMap<string | number, Record<string, unknown>> | undefined): void; start(): void; loadMore(windowOperationGeneration?: number): Promise<unknown> | undefined; loadFullSource(windowOperationGeneration?: number): void; private loadPrefix; resetCursor(): void; settleFullSourceReplay(): void; private retireSettledFiniteAcquisitions; invalidateCursor(): void; invalidateSourceOrdering(): void; dispose(): void; private countAcquiredRows; private loadPage; private observe; private loadBoundary; private requireFullSourceRecovery; private failRequest; /** A failed request blocks ordinary refinement until a new operation. */ private recordRequestFailure; /** Observe settlement only after all synchronous request work succeeds. */ private requestAndObserve; }