UNPKG

@tanstack/db

Version:

A reactive client store for building super fast apps on sync

70 lines (69 loc) • 3.07 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 readonly canRetryRepair; private readonly getGraphInputRevision?; private readonly hasPendingJoinedWork; private pending; private hasSettledSourceRequest; private settledSourceBoundary; private needsOrderingRepair; private canRepairWithOrderedPrefix; private requesting; private authoritativeRequestState; private authoritativeRequestKind; private settledFiniteAcquisitions; private orderedRepairAcquisitions; private failedRequest; private failedAcquisitions; private active; private orderedLoadGeneration; private orderingInvalidationGeneration; private orderedPrefixRepairGeneration; private lastPage; private lastPrefixCount; private lastBoundary; private repairRetries; private repairTimer; private stagedContinuation; private blockedLoadMore; private drainingNoInputContinuations; constructor(info: OrderByOptimizationInfo, subscription: CollectionSubscription, alias: string, onResult?: (result: LoadSubsetRequestResult, holdPublication: boolean, settlesAsync: boolean) => void, canRetryRepair?: () => boolean, getGraphInputRevision?: (() => number) | undefined, hasPendingJoinedWork?: () => boolean); /** 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, continuesOrderedPrefixRepair?: boolean): Promise<void> | undefined; loadFullSource(windowOperationGeneration?: number): void; private loadOrderedPrefixRepair; private loadPrefix; resetCursor(): void; settleFullSourceReplay(): void; private retireSettledFiniteAcquisitions; invalidateCursor(): void; invalidateSourceOrdering(): void; private finishOrderedPrefixRepair; private abandonOrderedPrefixRepair; dispose(): void; private countAcquiredRows; private loadPage; private observe; private runContinuation; private consumeStagedContinuation; private drainNoInputContinuations; private loadBoundary; private requireFullSourceRepair; private cancelRepairRetry; private releaseFailedAcquisitions; private scheduleRepairRetry; 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; }