MCPcopy Create free account
hub / github.com/TanStack/query / QueryController

Class QueryController

packages/lit-query/src/createQueryController.ts:90–314  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

88}
89
90class QueryController<
91 TQueryFnData,
92 TError,
93 TData,
94 TQueryData,
95 TQueryKey extends QueryKey,
96> extends BaseController<QueryObserverResult<TData, TError>> {
97 private readonly options: Accessor<
98 CreateQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>
99 >
100 private observer:
101 | QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>
102 | undefined
103 private readonly resultTracker = new QueryObserverResultTracker<
104 QueryObserverResult<TData, TError>
105 >()
106 private unsubscribe: (() => void) | undefined
107 private queryClient: QueryClient | undefined
108
109 constructor(
110 host: ReactiveControllerHost,
111 options: Accessor<
112 CreateQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>
113 >,
114 queryClient?: QueryClient,
115 ) {
116 const initialClient = queryClient
117 super(host, createPendingQueryResult(), queryClient)
118 this.options = options
119
120 if (!initialClient) {
121 return
122 }
123
124 if (typeof options === 'function') {
125 return
126 }
127
128 const defaulted = this.defaultOptions(initialClient)
129 const observer = new QueryObserver(initialClient, defaulted)
130 this.queryClient = initialClient
131 this.observer = observer
132 this.assignObserverResult(observer.getOptimisticResult(defaulted))
133 }
134
135 protected onConnected(): void {
136 if (!this.syncClient()) {
137 return
138 }
139
140 this.refreshOptions()
141 this.subscribe()
142 this.observer?.updateResult()
143 if (this.observer) {
144 this.setObserverResult(this.observer.getCurrentResult())
145 }
146 }
147

Callers

nothing calls this directly

Calls 8

applyOptionsMethod · 0.95
syncClientMethod · 0.95
defaultOptionsMethod · 0.95
refetchMethod · 0.80
fetchOptimisticMethod · 0.80
setOptionsMethod · 0.45
getOptimisticResultMethod · 0.45

Tested by

no test coverage detected