-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
/
Copy pathinject-infinite-query.ts
112 lines (108 loc) · 3.54 KB
/
inject-infinite-query.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import { InfiniteQueryObserver } from '@tanstack/query-core'
import { createBaseQuery } from './create-base-query'
import { assertInjector } from './util/assert-injector/assert-injector'
import type {
DefaultError,
InfiniteData,
QueryKey,
QueryObserver,
} from '@tanstack/query-core'
import type {
CreateInfiniteQueryOptions,
CreateInfiniteQueryResult,
DefinedCreateInfiniteQueryResult,
WithOptionalInjector,
} from './types'
import type {
DefinedInitialDataInfiniteOptions,
UndefinedInitialDataInfiniteOptions,
} from './infinite-query-options'
/**
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
* @param optionsFn - A function that returns infinite query options.
* @param options - Additional configuration.
* @returns The infinite query result.
* @public
*/
export function injectInfiniteQuery<
TQueryFnData,
TError = DefaultError,
TData = InfiniteData<TQueryFnData>,
TQueryKey extends QueryKey = QueryKey,
TPageParam = unknown,
>(
optionsFn: () => DefinedInitialDataInfiniteOptions<
TQueryFnData,
TError,
TData,
TQueryKey,
TPageParam
>,
options?: WithOptionalInjector,
): DefinedCreateInfiniteQueryResult<TData, TError>
/**
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
* @param optionsFn - A function that returns infinite query options.
* @param options - Additional configuration.
* @returns The infinite query result.
* @public
*/
export function injectInfiniteQuery<
TQueryFnData,
TError = DefaultError,
TData = InfiniteData<TQueryFnData>,
TQueryKey extends QueryKey = QueryKey,
TPageParam = unknown,
>(
optionsFn: () => UndefinedInitialDataInfiniteOptions<
TQueryFnData,
TError,
TData,
TQueryKey,
TPageParam
>,
options?: WithOptionalInjector,
): CreateInfiniteQueryResult<TData, TError>
/**
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
* @param optionsFn - A function that returns infinite query options.
* @param options - Additional configuration.
* @returns The infinite query result.
* @public
*/
export function injectInfiniteQuery<
TQueryFnData,
TError = DefaultError,
TData = InfiniteData<TQueryFnData>,
TQueryKey extends QueryKey = QueryKey,
TPageParam = unknown,
>(
optionsFn: () => CreateInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey,
TPageParam
>,
options?: WithOptionalInjector,
): CreateInfiniteQueryResult<TData, TError>
/**
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
* Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll"
* @param optionsFn - A function that returns infinite query options.
* @param options - Additional configuration.
* @returns The infinite query result.
* @public
*/
export function injectInfiniteQuery(
optionsFn: () => CreateInfiniteQueryOptions,
options?: WithOptionalInjector,
) {
return assertInjector(injectInfiniteQuery, options?.injector, () =>
createBaseQuery(optionsFn, InfiniteQueryObserver as typeof QueryObserver),
)
}