@@ -35,18 +35,26 @@ import {
3535import { QueryOptionsParams } from './query-options' ;
3636
3737export class MobxQuery <
38- TData ,
38+ TQueryFnData = unknown ,
3939 TError = DefaultError ,
40- TQueryKey extends QueryKey = any ,
40+ TData = TQueryFnData ,
41+ TQueryData = TQueryFnData ,
42+ TQueryKey extends QueryKey = QueryKey ,
4143> implements Disposable
4244{
4345 protected abortController : AbortController ;
4446 protected queryClient : AnyQueryClient ;
4547
4648 protected _result : QueryObserverResult < TData , TError > ;
4749
48- options : MobxQueryOptions < TData , TError , TQueryKey > ;
49- queryObserver : QueryObserver < TData , TError , TData , TData , TQueryKey > ;
50+ options : MobxQueryOptions < TQueryFnData , TError , TData , TQueryData , TQueryKey > ;
51+ queryObserver : QueryObserver <
52+ TQueryFnData ,
53+ TError ,
54+ TData ,
55+ TQueryData ,
56+ TQueryKey
57+ > ;
5058
5159 isResultRequsted : boolean ;
5260
@@ -57,25 +65,41 @@ export class MobxQuery<
5765 * in cases where the "enableOnDemand" option is enabled
5866 */
5967 private holdedEnabledOption : MobxQueryOptions <
60- TData ,
68+ TQueryFnData ,
6169 TError ,
70+ TData ,
71+ TQueryData ,
6272 TQueryKey
6373 > [ 'enabled' ] ;
6474 private _observerSubscription ?: VoidFunction ;
6575 private hooks ?: MobxQueryClientHooks ;
6676
67- protected config : MobxQueryConfig < TData , TError , TQueryKey > ;
77+ protected config : MobxQueryConfig <
78+ TQueryFnData ,
79+ TError ,
80+ TData ,
81+ TQueryData ,
82+ TQueryKey
83+ > ;
6884
69- constructor ( config : MobxQueryConfig < TData , TError , TQueryKey > ) ;
85+ constructor (
86+ config : MobxQueryConfig < TQueryFnData , TError , TData , TQueryData , TQueryKey > ,
87+ ) ;
7088 constructor (
7189 queryClient : AnyQueryClient ,
72- config : ( ) => QueryOptionsParams < TData , TError , TQueryKey > ,
90+ config : ( ) => QueryOptionsParams <
91+ TQueryFnData ,
92+ TError ,
93+ TData ,
94+ TQueryData ,
95+ TQueryKey
96+ > ,
7397 ) ;
7498
7599 constructor ( ...args : any [ ] ) {
76100 const [ queryClient , config ] : [
77101 AnyQueryClient ,
78- QueryOptionsParams < TData , TError , TQueryKey > ,
102+ QueryOptionsParams < TQueryFnData , TError , TData , TQueryData , TQueryKey > ,
79103 ] =
80104 args . length === 2 ? [ args [ 0 ] , args [ 1 ] ( ) ] : [ args [ 0 ] . queryClient , args [ 0 ] ] ;
81105 const {
@@ -145,10 +169,13 @@ export class MobxQuery<
145169 queryClient . getDefaultOptions ( ) . queries ?. notifyOnChangeProps ??
146170 'all' ;
147171
148- this . queryObserver = new QueryObserver (
149- queryClient as QueryClient ,
150- this . options ,
151- ) ;
172+ this . queryObserver = new QueryObserver <
173+ TQueryFnData ,
174+ TError ,
175+ TData ,
176+ TQueryData ,
177+ TQueryKey
178+ > ( queryClient as QueryClient , this . options ) ;
152179
153180 this . updateResult ( this . queryObserver . getOptimisticResult ( this . options ) ) ;
154181
@@ -209,7 +236,13 @@ export class MobxQuery<
209236
210237 protected createQueryHash (
211238 queryKey : any ,
212- options : MobxQueryOptions < TData , TError , TQueryKey > ,
239+ options : MobxQueryOptions <
240+ TQueryFnData ,
241+ TError ,
242+ TData ,
243+ TQueryData ,
244+ TQueryKey
245+ > ,
213246 ) {
214247 if ( options . queryKeyHashFn ) {
215248 return options . queryKeyHashFn ( queryKey ) ;
@@ -219,10 +252,13 @@ export class MobxQuery<
219252 }
220253
221254 setData (
222- updater : Updater < NoInfer < TData > | undefined , NoInfer < TData > | undefined > ,
255+ updater : Updater <
256+ NoInfer < TQueryFnData > | undefined ,
257+ NoInfer < TQueryFnData > | undefined
258+ > ,
223259 options ?: SetDataOptions ,
224260 ) {
225- return this . queryClient . setQueryData < TData > (
261+ return this . queryClient . setQueryData < TQueryFnData > (
226262 this . options . queryKey ,
227263 updater ,
228264 options ,
@@ -231,9 +267,23 @@ export class MobxQuery<
231267
232268 update (
233269 optionsUpdate :
234- | Partial < MobxQueryOptions < TData , TError , TQueryKey > >
235- | MobxQueryUpdateOptions < TData , TError , TQueryKey >
236- | MobxQueryDynamicOptions < TData , TError , TQueryKey > ,
270+ | Partial <
271+ MobxQueryOptions < TQueryFnData , TError , TData , TQueryData , TQueryKey >
272+ >
273+ | MobxQueryUpdateOptions <
274+ TQueryFnData ,
275+ TError ,
276+ TData ,
277+ TQueryData ,
278+ TQueryKey
279+ >
280+ | MobxQueryDynamicOptions <
281+ TQueryFnData ,
282+ TError ,
283+ TData ,
284+ TQueryData ,
285+ TQueryKey
286+ > ,
237287 ) {
238288 if ( this . abortController . signal . aborted ) {
239289 return ;
@@ -256,7 +306,13 @@ export class MobxQuery<
256306 private enableHolder = ( ) => false ;
257307
258308 private processOptions = (
259- options : MobxQueryOptions < TData , TError , TQueryKey > ,
309+ options : MobxQueryOptions <
310+ TQueryFnData ,
311+ TError ,
312+ TData ,
313+ TQueryData ,
314+ TQueryKey
315+ > ,
260316 ) => {
261317 options . queryHash = this . createQueryHash ( options . queryKey , options ) ;
262318
@@ -379,7 +435,13 @@ export class MobxQuery<
379435 async start ( {
380436 cancelRefetch,
381437 ...params
382- } : MobxQueryStartParams < TData , TError , TQueryKey > = { } ) {
438+ } : MobxQueryStartParams <
439+ TQueryFnData ,
440+ TError ,
441+ TData ,
442+ TQueryData ,
443+ TQueryKey
444+ > = { } ) {
383445 this . update ( { ...params } ) ;
384446
385447 await this . refetch ( { cancelRefetch } ) ;
0 commit comments