1
1
import { InfiniteQueryObserver } from '@tanstack/query-core'
2
2
import { createBaseQuery } from './create-base-query'
3
3
import { assertInjector } from './util/assert-injector/assert-injector'
4
- import type { Injector } from '@angular/core'
5
4
import type {
6
5
DefaultError ,
7
6
InfiniteData ,
@@ -17,12 +16,22 @@ import type {
17
16
DefinedInitialDataInfiniteOptions ,
18
17
UndefinedInitialDataInfiniteOptions ,
19
18
} from './infinite-query-options'
19
+ import type { Injector } from '@angular/core'
20
+
21
+ export interface InjectInfiniteQueryOptions {
22
+ /**
23
+ * The `Injector` in which to create the infinite query.
24
+ *
25
+ * If this is not provided, the current injection context will be used instead (via `inject`).
26
+ */
27
+ injector ?: Injector
28
+ }
20
29
21
30
/**
22
31
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
23
32
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
24
- * @param optionsFn - A function that returns infinite query options.
25
- * @param injector - The Angular injector to use .
33
+ * @param injectInfiniteQueryFn - A function that returns infinite query options.
34
+ * @param options - Additional configuration .
26
35
* @returns The infinite query result.
27
36
* @public
28
37
*/
@@ -33,21 +42,21 @@ export function injectInfiniteQuery<
33
42
TQueryKey extends QueryKey = QueryKey ,
34
43
TPageParam = unknown ,
35
44
> (
36
- optionsFn : ( ) => DefinedInitialDataInfiniteOptions <
45
+ injectInfiniteQueryFn : ( ) => DefinedInitialDataInfiniteOptions <
37
46
TQueryFnData ,
38
47
TError ,
39
48
TData ,
40
49
TQueryKey ,
41
50
TPageParam
42
51
> ,
43
- injector ?: Injector ,
52
+ options ?: InjectInfiniteQueryOptions ,
44
53
) : DefinedCreateInfiniteQueryResult < TData , TError >
45
54
46
55
/**
47
56
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
48
57
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
49
- * @param optionsFn - A function that returns infinite query options.
50
- * @param injector - The Angular injector to use .
58
+ * @param injectInfiniteQueryFn - A function that returns infinite query options.
59
+ * @param options - Additional configuration .
51
60
* @returns The infinite query result.
52
61
* @public
53
62
*/
@@ -58,21 +67,21 @@ export function injectInfiniteQuery<
58
67
TQueryKey extends QueryKey = QueryKey ,
59
68
TPageParam = unknown ,
60
69
> (
61
- optionsFn : ( ) => UndefinedInitialDataInfiniteOptions <
70
+ injectInfiniteQueryFn : ( ) => UndefinedInitialDataInfiniteOptions <
62
71
TQueryFnData ,
63
72
TError ,
64
73
TData ,
65
74
TQueryKey ,
66
75
TPageParam
67
76
> ,
68
- injector ?: Injector ,
77
+ options ?: InjectInfiniteQueryOptions ,
69
78
) : CreateInfiniteQueryResult < TData , TError >
70
79
71
80
/**
72
81
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
73
82
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
74
- * @param optionsFn - A function that returns infinite query options.
75
- * @param injector - The Angular injector to use .
83
+ * @param injectInfiniteQueryFn - A function that returns infinite query options.
84
+ * @param options - Additional configuration .
76
85
* @returns The infinite query result.
77
86
* @public
78
87
*/
@@ -83,30 +92,37 @@ export function injectInfiniteQuery<
83
92
TQueryKey extends QueryKey = QueryKey ,
84
93
TPageParam = unknown ,
85
94
> (
86
- optionsFn : ( ) => CreateInfiniteQueryOptions <
95
+ injectInfiniteQueryFn : ( ) => CreateInfiniteQueryOptions <
87
96
TQueryFnData ,
88
97
TError ,
89
98
TData ,
90
99
TQueryFnData ,
91
100
TQueryKey ,
92
101
TPageParam
93
102
> ,
94
- injector ?: Injector ,
103
+ options ?: InjectInfiniteQueryOptions ,
95
104
) : CreateInfiniteQueryResult < TData , TError >
96
105
97
106
/**
98
107
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
99
108
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
100
- * @param optionsFn - A function that returns infinite query options.
101
- * @param injector - The Angular injector to use .
109
+ * @param injectInfiniteQueryFn - A function that returns infinite query options.
110
+ * @param options - Additional configuration .
102
111
* @returns The infinite query result.
103
112
* @public
104
113
*/
105
114
export function injectInfiniteQuery (
106
- optionsFn : ( ) => CreateInfiniteQueryOptions ,
107
- injector ?: Injector ,
115
+ injectInfiniteQueryFn : ( ) => CreateInfiniteQueryOptions ,
116
+ options ?: InjectInfiniteQueryOptions ,
108
117
) {
109
- return assertInjector ( injectInfiniteQuery , injector , ( ) =>
110
- createBaseQuery ( optionsFn , InfiniteQueryObserver as typeof QueryObserver ) ,
118
+ return assertInjector ( injectInfiniteQuery , options ?. injector , ( ) =>
119
+ createBaseQuery (
120
+ injectInfiniteQueryFn ,
121
+ InfiniteQueryObserver as typeof QueryObserver ,
122
+ ) ,
111
123
)
112
124
}
125
+
126
+ export interface InjectInfiniteQueryOptions {
127
+ injector ?: Injector
128
+ }
0 commit comments