UNPKG

@tanstack/react-db

Version:

React integration for @tanstack/db

40 lines (34 loc) • 1.04 kB
import type { DbClient, DeferredLiveQueryCollections, LiveQueryObserver, UnhashableQueryIRError, } from '@tanstack/db' const liveQueryResultInfo = Symbol(`liveQueryResultInfo`) export type LiveQueryResultInfo = { client: DbClient | undefined queryHash: string | undefined identityError: UnhashableQueryIRError | undefined observer: LiveQueryObserver<object, string | number> /** Sync starts this render deferred, released if the render throws. */ deferredCollections: DeferredLiveQueryCollections } type ResultWithInfo = { [liveQueryResultInfo]?: LiveQueryResultInfo } export function setLiveQueryResultInfo( result: object, info: LiveQueryResultInfo, ): void { Object.defineProperty(result, liveQueryResultInfo, { configurable: true, value: info, }) } export function getLiveQueryResultInfo(result: object): LiveQueryResultInfo { const info = (result as ResultWithInfo)[liveQueryResultInfo] if (!info) { throw new Error(`Missing internal live query result information.`) } return info }