@tanstack/react-query 4.40.2 → 4.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/__tests__/infiniteQueryOptions.test.d.ts +2 -0
- package/build/lib/__tests__/infiniteQueryOptions.types.test.d.ts +2 -0
- package/build/lib/__tests__/useSuspenseInfiniteQuery.types.test.d.ts +2 -0
- package/build/lib/index.d.ts +3 -0
- package/build/lib/index.esm.js +2 -0
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.js +4 -0
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +2 -0
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/infiniteQueryOptions.d.ts +14 -0
- package/build/lib/infiniteQueryOptions.esm.js +6 -0
- package/build/lib/infiniteQueryOptions.esm.js.map +1 -0
- package/build/lib/infiniteQueryOptions.js +10 -0
- package/build/lib/infiniteQueryOptions.js.map +1 -0
- package/build/lib/infiniteQueryOptions.mjs +6 -0
- package/build/lib/infiniteQueryOptions.mjs.map +1 -0
- package/build/lib/queryOptions.d.ts +2 -2
- package/build/lib/queryOptions.esm.js.map +1 -1
- package/build/lib/queryOptions.js.map +1 -1
- package/build/lib/queryOptions.mjs.map +1 -1
- package/build/lib/suspense.esm.js +11 -0
- package/build/lib/suspense.esm.js.map +1 -1
- package/build/lib/suspense.js +11 -0
- package/build/lib/suspense.js.map +1 -1
- package/build/lib/suspense.mjs +11 -0
- package/build/lib/suspense.mjs.map +1 -1
- package/build/lib/types.d.ts +3 -1
- package/build/lib/useInfiniteQuery.d.ts +7 -2
- package/build/lib/useInfiniteQuery.esm.js.map +1 -1
- package/build/lib/useInfiniteQuery.js.map +1 -1
- package/build/lib/useInfiniteQuery.mjs.map +1 -1
- package/build/lib/useQuery.d.ts +6 -6
- package/build/lib/useQuery.esm.js.map +1 -1
- package/build/lib/useQuery.js.map +1 -1
- package/build/lib/useQuery.mjs.map +1 -1
- package/build/lib/useSuspenseInfiniteQuery.d.ts +5 -0
- package/build/lib/useSuspenseInfiniteQuery.esm.js +14 -0
- package/build/lib/useSuspenseInfiniteQuery.esm.js.map +1 -0
- package/build/lib/useSuspenseInfiniteQuery.js +18 -0
- package/build/lib/useSuspenseInfiniteQuery.js.map +1 -0
- package/build/lib/useSuspenseInfiniteQuery.mjs +14 -0
- package/build/lib/useSuspenseInfiniteQuery.mjs.map +1 -0
- package/build/umd/index.development.js +26 -0
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/infiniteQueryOptions.test.tsx +13 -0
- package/src/__tests__/infiniteQueryOptions.types.test.tsx +111 -0
- package/src/__tests__/queryOptions.types.test.tsx +8 -7
- package/src/__tests__/useSuspenseInfiniteQuery.types.test.tsx +115 -0
- package/src/index.ts +6 -0
- package/src/infiniteQueryOptions.ts +95 -0
- package/src/queryOptions.ts +8 -2
- package/src/types.ts +14 -0
- package/src/useInfiniteQuery.ts +28 -1
- package/src/useQuery.ts +6 -6
- package/src/useSuspenseInfiniteQuery.ts +62 -0
- package/build/lib/Hydrate.d.ts.map +0 -1
- package/build/lib/QueryClientProvider.d.ts.map +0 -1
- package/build/lib/QueryErrorResetBoundary.d.ts.map +0 -1
- package/build/lib/__tests__/Hydrate.test.d.ts.map +0 -1
- package/build/lib/__tests__/QueryClientProvider.test.d.ts.map +0 -1
- package/build/lib/__tests__/QueryResetErrorBoundary.test.d.ts.map +0 -1
- package/build/lib/__tests__/queryOptions.types.test.d.ts.map +0 -1
- package/build/lib/__tests__/ssr-hydration.test.d.ts.map +0 -1
- package/build/lib/__tests__/ssr.test.d.ts.map +0 -1
- package/build/lib/__tests__/suspense.test.d.ts.map +0 -1
- package/build/lib/__tests__/useInfiniteQuery.test.d.ts.map +0 -1
- package/build/lib/__tests__/useIsFetching.test.d.ts.map +0 -1
- package/build/lib/__tests__/useIsMutating.test.d.ts.map +0 -1
- package/build/lib/__tests__/useMutation.test.d.ts.map +0 -1
- package/build/lib/__tests__/useQueries.test.d.ts.map +0 -1
- package/build/lib/__tests__/useQuery.test.d.ts.map +0 -1
- package/build/lib/__tests__/useQuery.types.test.d.ts.map +0 -1
- package/build/lib/__tests__/useSuspenseQueries.types.test.d.ts.map +0 -1
- package/build/lib/__tests__/useSuspenseQuery.types.test.d.ts.map +0 -1
- package/build/lib/__tests__/utils.d.ts.map +0 -1
- package/build/lib/errorBoundaryUtils.d.ts.map +0 -1
- package/build/lib/index.d.ts.map +0 -1
- package/build/lib/isRestoring.d.ts.map +0 -1
- package/build/lib/queryOptions.d.ts.map +0 -1
- package/build/lib/reactBatchedUpdates.d.ts.map +0 -1
- package/build/lib/reactBatchedUpdates.native.d.ts.map +0 -1
- package/build/lib/setBatchUpdatesFn.d.ts.map +0 -1
- package/build/lib/suspense.d.ts.map +0 -1
- package/build/lib/types.d.ts.map +0 -1
- package/build/lib/useBaseQuery.d.ts.map +0 -1
- package/build/lib/useInfiniteQuery.d.ts.map +0 -1
- package/build/lib/useIsFetching.d.ts.map +0 -1
- package/build/lib/useIsMutating.d.ts.map +0 -1
- package/build/lib/useMutation.d.ts.map +0 -1
- package/build/lib/useQueries.d.ts.map +0 -1
- package/build/lib/useQuery.d.ts.map +0 -1
- package/build/lib/useSuspenseQueries.d.ts.map +0 -1
- package/build/lib/useSuspenseQuery.d.ts.map +0 -1
- package/build/lib/useSyncExternalStore.d.ts.map +0 -1
- package/build/lib/useSyncExternalStore.native.d.ts.map +0 -1
- package/build/lib/utils.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-query",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.41.0",
|
|
4
4
|
"description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
|
|
5
5
|
"author": "tannerlinsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"use-sync-external-store": "^1.2.0",
|
|
54
|
-
"@tanstack/query-core": "4.
|
|
54
|
+
"@tanstack/query-core": "4.41.0"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { infiniteQueryOptions } from '../infiniteQueryOptions'
|
|
2
|
+
|
|
3
|
+
describe('infiniteQueryOptions', () => {
|
|
4
|
+
it('should return the object received as a parameter without any modification.', () => {
|
|
5
|
+
const object = {
|
|
6
|
+
queryKey: ['key'],
|
|
7
|
+
queryFn: () => Promise.resolve(5),
|
|
8
|
+
getNextPageParam: () => null,
|
|
9
|
+
} as const
|
|
10
|
+
|
|
11
|
+
expect(infiniteQueryOptions(object)).toStrictEqual(object)
|
|
12
|
+
})
|
|
13
|
+
})
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { expectTypeOf } from 'expect-type'
|
|
2
|
+
import {
|
|
3
|
+
type InfiniteData,
|
|
4
|
+
type UseInfiniteQueryResult,
|
|
5
|
+
useInfiniteQuery,
|
|
6
|
+
useQueryClient,
|
|
7
|
+
} from '@tanstack/react-query'
|
|
8
|
+
|
|
9
|
+
import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery'
|
|
10
|
+
import { infiniteQueryOptions } from '../infiniteQueryOptions'
|
|
11
|
+
import { doNotExecute } from './utils'
|
|
12
|
+
import type {
|
|
13
|
+
DefinedUseInfiniteQueryResult,
|
|
14
|
+
UseSuspenseInfiniteQueryResult,
|
|
15
|
+
} from '../types'
|
|
16
|
+
|
|
17
|
+
const infiniteQuery = {
|
|
18
|
+
options: () =>
|
|
19
|
+
infiniteQueryOptions({
|
|
20
|
+
queryKey: ['key', 1] as const,
|
|
21
|
+
queryFn: () => Promise.resolve({ field: 'success' }),
|
|
22
|
+
}),
|
|
23
|
+
optionsWithInitialData: () =>
|
|
24
|
+
infiniteQueryOptions({
|
|
25
|
+
queryKey: ['key', 2] as const,
|
|
26
|
+
queryFn: () => Promise.resolve({ field: 'success' }),
|
|
27
|
+
initialData: () => ({ pageParams: [], pages: [{ field: 'success' }] }),
|
|
28
|
+
}),
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
describe('infiniteQueryOptions', () => {
|
|
32
|
+
it('should be used with useInfiniteQuery', () => {
|
|
33
|
+
doNotExecute(() => {
|
|
34
|
+
expectTypeOf(useInfiniteQuery(infiniteQuery.options())).toEqualTypeOf<
|
|
35
|
+
UseInfiniteQueryResult<{ field: string }>
|
|
36
|
+
>()
|
|
37
|
+
|
|
38
|
+
expectTypeOf(
|
|
39
|
+
useInfiniteQuery({
|
|
40
|
+
...infiniteQuery.options(),
|
|
41
|
+
select: (data) => ({
|
|
42
|
+
pages: data.pages.map(({ field }) => field),
|
|
43
|
+
pageParams: data.pageParams,
|
|
44
|
+
}),
|
|
45
|
+
}),
|
|
46
|
+
).toEqualTypeOf<UseInfiniteQueryResult<string>>()
|
|
47
|
+
|
|
48
|
+
expectTypeOf(
|
|
49
|
+
useInfiniteQuery(infiniteQuery.optionsWithInitialData()),
|
|
50
|
+
).toEqualTypeOf<DefinedUseInfiniteQueryResult<{ field: string }>>()
|
|
51
|
+
|
|
52
|
+
expectTypeOf(
|
|
53
|
+
useInfiniteQuery({
|
|
54
|
+
...infiniteQuery.optionsWithInitialData(),
|
|
55
|
+
select: (data) => ({
|
|
56
|
+
pages: data.pages.map(({ field }) => field),
|
|
57
|
+
pageParams: data.pageParams,
|
|
58
|
+
}),
|
|
59
|
+
}),
|
|
60
|
+
).toEqualTypeOf<DefinedUseInfiniteQueryResult<string>>()
|
|
61
|
+
|
|
62
|
+
expectTypeOf(
|
|
63
|
+
useInfiniteQuery({
|
|
64
|
+
queryKey: ['key', 2] as const,
|
|
65
|
+
queryFn: () => Promise.resolve({ field: 'success' }),
|
|
66
|
+
initialData: () => ({
|
|
67
|
+
pages: [{ field: 'success' }],
|
|
68
|
+
pageParams: [],
|
|
69
|
+
}),
|
|
70
|
+
select: (data) => ({
|
|
71
|
+
pages: data.pages.map(({ field }) => field),
|
|
72
|
+
pageParams: data.pageParams,
|
|
73
|
+
}),
|
|
74
|
+
}),
|
|
75
|
+
).toEqualTypeOf<DefinedUseInfiniteQueryResult<string>>()
|
|
76
|
+
})
|
|
77
|
+
})
|
|
78
|
+
it('should be used with useSuspenseInfiniteQuery', () => {
|
|
79
|
+
doNotExecute(() => {
|
|
80
|
+
expectTypeOf(
|
|
81
|
+
useSuspenseInfiniteQuery(infiniteQuery.options()),
|
|
82
|
+
).toEqualTypeOf<UseSuspenseInfiniteQueryResult<{ field: string }>>()
|
|
83
|
+
|
|
84
|
+
expectTypeOf(
|
|
85
|
+
useSuspenseInfiniteQuery({
|
|
86
|
+
...infiniteQuery.options(),
|
|
87
|
+
select: (data) => ({
|
|
88
|
+
pages: data.pages.map(({ field }) => field),
|
|
89
|
+
pageParams: data.pageParams,
|
|
90
|
+
}),
|
|
91
|
+
}),
|
|
92
|
+
).toEqualTypeOf<UseSuspenseInfiniteQueryResult<string>>()
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
it('should be used with useQueryClient', () => {
|
|
96
|
+
doNotExecute(async () => {
|
|
97
|
+
const queryClient = useQueryClient()
|
|
98
|
+
|
|
99
|
+
queryClient.invalidateQueries(infiniteQuery.options())
|
|
100
|
+
queryClient.resetQueries(infiniteQuery.options())
|
|
101
|
+
queryClient.removeQueries(infiniteQuery.options())
|
|
102
|
+
queryClient.cancelQueries(infiniteQuery.options())
|
|
103
|
+
queryClient.prefetchQuery(infiniteQuery.options())
|
|
104
|
+
queryClient.refetchQueries(infiniteQuery.options())
|
|
105
|
+
|
|
106
|
+
expectTypeOf(
|
|
107
|
+
await queryClient.fetchQuery(infiniteQuery.options()),
|
|
108
|
+
).toEqualTypeOf<InfiniteData<{ field: string }>>()
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
})
|
|
@@ -19,13 +19,14 @@ const queryFn = () => Promise.resolve({ field: 'success' })
|
|
|
19
19
|
describe('queryOptions', () => {
|
|
20
20
|
it('should be used with useQuery', () => {
|
|
21
21
|
doNotExecute(() => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
expectTypeOf(
|
|
23
|
+
useQuery(
|
|
24
|
+
queryOptions({
|
|
25
|
+
queryKey,
|
|
26
|
+
queryFn,
|
|
27
|
+
}),
|
|
28
|
+
),
|
|
29
|
+
).toEqualTypeOf<UseQueryResult<{ field: string }>>()
|
|
29
30
|
expectTypeOf(
|
|
30
31
|
useQuery({
|
|
31
32
|
...queryOptions({
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { expectTypeOf } from 'expect-type'
|
|
2
|
+
import { infiniteQueryOptions, useSuspenseInfiniteQuery } from '..'
|
|
3
|
+
import { doNotExecute, sleep } from './utils'
|
|
4
|
+
import type { UseSuspenseInfiniteQueryResult } from '..'
|
|
5
|
+
|
|
6
|
+
import type { InfiniteData } from '@tanstack/react-query'
|
|
7
|
+
|
|
8
|
+
const queryKey = ['key'] as const
|
|
9
|
+
const queryFn = () => sleep(10).then(() => ({ text: 'response' }))
|
|
10
|
+
|
|
11
|
+
describe('useSuspenseInfiniteQuery', () => {
|
|
12
|
+
it('type check', () => {
|
|
13
|
+
doNotExecute(() => {
|
|
14
|
+
// @ts-expect-error no arg
|
|
15
|
+
useSuspenseInfiniteQuery()
|
|
16
|
+
|
|
17
|
+
useSuspenseInfiniteQuery({
|
|
18
|
+
queryKey,
|
|
19
|
+
queryFn,
|
|
20
|
+
// @ts-expect-error no suspense
|
|
21
|
+
suspense: boolean,
|
|
22
|
+
})
|
|
23
|
+
useSuspenseInfiniteQuery({
|
|
24
|
+
queryKey,
|
|
25
|
+
queryFn,
|
|
26
|
+
// @ts-expect-error no useErrorBoundary
|
|
27
|
+
useErrorBoundary: boolean,
|
|
28
|
+
})
|
|
29
|
+
useSuspenseInfiniteQuery({
|
|
30
|
+
queryKey,
|
|
31
|
+
queryFn,
|
|
32
|
+
// @ts-expect-error no enabled
|
|
33
|
+
enabled: boolean,
|
|
34
|
+
})
|
|
35
|
+
useSuspenseInfiniteQuery({
|
|
36
|
+
queryKey,
|
|
37
|
+
queryFn,
|
|
38
|
+
// @ts-expect-error no placeholderData
|
|
39
|
+
placeholderData: 'placeholder',
|
|
40
|
+
})
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
42
|
+
useSuspenseInfiniteQuery({
|
|
43
|
+
queryKey,
|
|
44
|
+
queryFn,
|
|
45
|
+
// @ts-expect-error no isPlaceholderData
|
|
46
|
+
}).isPlaceholderData
|
|
47
|
+
useSuspenseInfiniteQuery({
|
|
48
|
+
queryKey,
|
|
49
|
+
queryFn,
|
|
50
|
+
//@ts-expect-error no networkMode
|
|
51
|
+
networkMode: 'always',
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
const infiniteQuery = useSuspenseInfiniteQuery({ queryKey, queryFn })
|
|
55
|
+
expectTypeOf(infiniteQuery).toEqualTypeOf<
|
|
56
|
+
UseSuspenseInfiniteQueryResult<{ text: string }>
|
|
57
|
+
>()
|
|
58
|
+
expectTypeOf(infiniteQuery.data).toEqualTypeOf<
|
|
59
|
+
InfiniteData<{ text: string }>
|
|
60
|
+
>()
|
|
61
|
+
expectTypeOf(infiniteQuery.status).toEqualTypeOf<'error' | 'success'>()
|
|
62
|
+
|
|
63
|
+
const selectedInfiniteQuery = useSuspenseInfiniteQuery({
|
|
64
|
+
queryKey,
|
|
65
|
+
queryFn,
|
|
66
|
+
select: (data) => ({
|
|
67
|
+
pages: data.pages.map(({ text }) => text),
|
|
68
|
+
pageParams: data.pageParams,
|
|
69
|
+
}),
|
|
70
|
+
})
|
|
71
|
+
expectTypeOf(selectedInfiniteQuery).toEqualTypeOf<
|
|
72
|
+
UseSuspenseInfiniteQueryResult<string>
|
|
73
|
+
>()
|
|
74
|
+
expectTypeOf(selectedInfiniteQuery.data).toEqualTypeOf<
|
|
75
|
+
InfiniteData<string>
|
|
76
|
+
>()
|
|
77
|
+
expectTypeOf(selectedInfiniteQuery.status).toEqualTypeOf<
|
|
78
|
+
'error' | 'success'
|
|
79
|
+
>()
|
|
80
|
+
|
|
81
|
+
const options = infiniteQueryOptions({
|
|
82
|
+
queryKey,
|
|
83
|
+
queryFn,
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
const infiniteQueryWithOptions = useSuspenseInfiniteQuery(options)
|
|
87
|
+
expectTypeOf(infiniteQueryWithOptions).toEqualTypeOf<
|
|
88
|
+
UseSuspenseInfiniteQueryResult<{ text: string }>
|
|
89
|
+
>()
|
|
90
|
+
expectTypeOf(infiniteQueryWithOptions.data).toEqualTypeOf<
|
|
91
|
+
InfiniteData<{ text: string }>
|
|
92
|
+
>()
|
|
93
|
+
expectTypeOf(infiniteQueryWithOptions.status).toEqualTypeOf<
|
|
94
|
+
'error' | 'success'
|
|
95
|
+
>()
|
|
96
|
+
|
|
97
|
+
const selectedInfiniteQueryWithOptions = useSuspenseInfiniteQuery({
|
|
98
|
+
...options,
|
|
99
|
+
select: (data) => ({
|
|
100
|
+
pages: data.pages.map(({ text }) => text),
|
|
101
|
+
pageParams: data.pageParams,
|
|
102
|
+
}),
|
|
103
|
+
})
|
|
104
|
+
expectTypeOf(selectedInfiniteQueryWithOptions).toEqualTypeOf<
|
|
105
|
+
UseSuspenseInfiniteQueryResult<string>
|
|
106
|
+
>()
|
|
107
|
+
expectTypeOf(selectedInfiniteQueryWithOptions.data).toEqualTypeOf<
|
|
108
|
+
InfiniteData<string>
|
|
109
|
+
>()
|
|
110
|
+
expectTypeOf(selectedInfiniteQueryWithOptions.status).toEqualTypeOf<
|
|
111
|
+
'error' | 'success'
|
|
112
|
+
>()
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
})
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { useQueries } from './useQueries'
|
|
|
12
12
|
export type { QueriesResults, QueriesOptions } from './useQueries'
|
|
13
13
|
export { useQuery } from './useQuery'
|
|
14
14
|
export { useSuspenseQuery } from './useSuspenseQuery'
|
|
15
|
+
export { useSuspenseInfiniteQuery } from './useSuspenseInfiniteQuery'
|
|
15
16
|
export { useSuspenseQueries } from './useSuspenseQueries'
|
|
16
17
|
export type {
|
|
17
18
|
SuspenseQueriesResults,
|
|
@@ -22,6 +23,11 @@ export type {
|
|
|
22
23
|
DefinedInitialDataOptions,
|
|
23
24
|
UndefinedInitialDataOptions,
|
|
24
25
|
} from './queryOptions'
|
|
26
|
+
export { infiniteQueryOptions } from './infiniteQueryOptions'
|
|
27
|
+
export type {
|
|
28
|
+
DefinedInitialDataInfiniteOptions,
|
|
29
|
+
UndefinedInitialDataInfiniteOptions,
|
|
30
|
+
} from './infiniteQueryOptions'
|
|
25
31
|
export {
|
|
26
32
|
defaultContext,
|
|
27
33
|
QueryClientProvider,
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { UseInfiniteQueryOptions } from './types'
|
|
2
|
+
import type {
|
|
3
|
+
InfiniteData,
|
|
4
|
+
NonUndefinedGuard,
|
|
5
|
+
OmitKeyof,
|
|
6
|
+
QueryKey,
|
|
7
|
+
WithRequired,
|
|
8
|
+
} from '@tanstack/query-core'
|
|
9
|
+
|
|
10
|
+
type UseInfiniteQueryOptionsOmitted<
|
|
11
|
+
TQueryFnData = unknown,
|
|
12
|
+
TError = unknown,
|
|
13
|
+
TData = TQueryFnData,
|
|
14
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
15
|
+
> = OmitKeyof<
|
|
16
|
+
UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
|
|
17
|
+
'onSuccess' | 'onError' | 'onSettled' | 'refetchInterval'
|
|
18
|
+
>
|
|
19
|
+
|
|
20
|
+
type ProhibitedInfiniteQueryOptionsKeyInV5 = keyof Pick<
|
|
21
|
+
UseInfiniteQueryOptionsOmitted,
|
|
22
|
+
'useErrorBoundary' | 'suspense'
|
|
23
|
+
>
|
|
24
|
+
|
|
25
|
+
export type UndefinedInitialDataInfiniteOptions<
|
|
26
|
+
TQueryFnData,
|
|
27
|
+
TError = unknown,
|
|
28
|
+
TData = TQueryFnData,
|
|
29
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
30
|
+
> = UseInfiniteQueryOptionsOmitted<TQueryFnData, TError, TData, TQueryKey> & {
|
|
31
|
+
initialData?: undefined
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type DefinedInitialDataInfiniteOptions<
|
|
35
|
+
TQueryFnData,
|
|
36
|
+
TError = unknown,
|
|
37
|
+
TData = TQueryFnData,
|
|
38
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
39
|
+
> = UseInfiniteQueryOptionsOmitted<TQueryFnData, TError, TData, TQueryKey> & {
|
|
40
|
+
initialData:
|
|
41
|
+
| NonUndefinedGuard<InfiniteData<TQueryFnData>>
|
|
42
|
+
| (() => NonUndefinedGuard<InfiniteData<TQueryFnData>>)
|
|
43
|
+
| undefined
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function infiniteQueryOptions<
|
|
47
|
+
TQueryFnData,
|
|
48
|
+
TError = unknown,
|
|
49
|
+
TData = TQueryFnData,
|
|
50
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
51
|
+
>(
|
|
52
|
+
options: WithRequired<
|
|
53
|
+
OmitKeyof<
|
|
54
|
+
DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
55
|
+
ProhibitedInfiniteQueryOptionsKeyInV5
|
|
56
|
+
>,
|
|
57
|
+
'queryKey'
|
|
58
|
+
>,
|
|
59
|
+
): WithRequired<
|
|
60
|
+
OmitKeyof<
|
|
61
|
+
DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
62
|
+
ProhibitedInfiniteQueryOptionsKeyInV5
|
|
63
|
+
>,
|
|
64
|
+
'queryKey'
|
|
65
|
+
>
|
|
66
|
+
|
|
67
|
+
export function infiniteQueryOptions<
|
|
68
|
+
TQueryFnData,
|
|
69
|
+
TError = unknown,
|
|
70
|
+
TData = TQueryFnData,
|
|
71
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
72
|
+
>(
|
|
73
|
+
options: WithRequired<
|
|
74
|
+
OmitKeyof<
|
|
75
|
+
UndefinedInitialDataInfiniteOptions<
|
|
76
|
+
TQueryFnData,
|
|
77
|
+
TError,
|
|
78
|
+
TData,
|
|
79
|
+
TQueryKey
|
|
80
|
+
>,
|
|
81
|
+
ProhibitedInfiniteQueryOptionsKeyInV5
|
|
82
|
+
>,
|
|
83
|
+
'queryKey'
|
|
84
|
+
>,
|
|
85
|
+
): WithRequired<
|
|
86
|
+
OmitKeyof<
|
|
87
|
+
UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
88
|
+
ProhibitedInfiniteQueryOptionsKeyInV5
|
|
89
|
+
>,
|
|
90
|
+
'queryKey'
|
|
91
|
+
>
|
|
92
|
+
|
|
93
|
+
export function infiniteQueryOptions(options: unknown) {
|
|
94
|
+
return options
|
|
95
|
+
}
|
package/src/queryOptions.ts
CHANGED
|
@@ -59,7 +59,10 @@ export function queryOptions<
|
|
|
59
59
|
'queryKey'
|
|
60
60
|
>,
|
|
61
61
|
): WithRequired<
|
|
62
|
-
|
|
62
|
+
OmitKeyof<
|
|
63
|
+
DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
64
|
+
ProhibitedQueryOptionsKeyInV5
|
|
65
|
+
>,
|
|
63
66
|
'queryKey'
|
|
64
67
|
>
|
|
65
68
|
|
|
@@ -77,7 +80,10 @@ export function queryOptions<
|
|
|
77
80
|
'queryKey'
|
|
78
81
|
>,
|
|
79
82
|
): WithRequired<
|
|
80
|
-
|
|
83
|
+
OmitKeyof<
|
|
84
|
+
UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
85
|
+
ProhibitedQueryOptionsKeyInV5
|
|
86
|
+
>,
|
|
81
87
|
'queryKey'
|
|
82
88
|
>
|
|
83
89
|
|
package/src/types.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import type * as React from 'react'
|
|
4
4
|
import type {
|
|
5
|
+
DefinedInfiniteQueryObserverResult,
|
|
5
6
|
DefinedQueryObserverResult,
|
|
6
7
|
DistributiveOmit,
|
|
7
8
|
InfiniteQueryObserverOptions,
|
|
@@ -120,6 +121,19 @@ export type UseInfiniteQueryResult<
|
|
|
120
121
|
TError = unknown,
|
|
121
122
|
> = InfiniteQueryObserverResult<TData, TError>
|
|
122
123
|
|
|
124
|
+
export type DefinedUseInfiniteQueryResult<
|
|
125
|
+
TData = unknown,
|
|
126
|
+
TError = unknown,
|
|
127
|
+
> = DefinedInfiniteQueryObserverResult<TData, TError>
|
|
128
|
+
|
|
129
|
+
export type UseSuspenseInfiniteQueryResult<
|
|
130
|
+
TData = unknown,
|
|
131
|
+
TError = unknown,
|
|
132
|
+
> = OmitKeyof<
|
|
133
|
+
DefinedInfiniteQueryObserverResult<TData, TError>,
|
|
134
|
+
'isPlaceholderData'
|
|
135
|
+
>
|
|
136
|
+
|
|
123
137
|
export interface UseMutationOptions<
|
|
124
138
|
TData = unknown,
|
|
125
139
|
TError = unknown,
|
package/src/useInfiniteQuery.ts
CHANGED
|
@@ -2,14 +2,39 @@
|
|
|
2
2
|
import { InfiniteQueryObserver, parseQueryArgs } from '@tanstack/query-core'
|
|
3
3
|
import { useBaseQuery } from './useBaseQuery'
|
|
4
4
|
import type {
|
|
5
|
+
InfiniteData,
|
|
6
|
+
NonUndefinedGuard,
|
|
5
7
|
QueryFunction,
|
|
6
8
|
QueryKey,
|
|
7
9
|
QueryObserver,
|
|
8
10
|
} from '@tanstack/query-core'
|
|
9
|
-
import type {
|
|
11
|
+
import type {
|
|
12
|
+
DefinedUseInfiniteQueryResult,
|
|
13
|
+
UseInfiniteQueryOptions,
|
|
14
|
+
UseInfiniteQueryResult,
|
|
15
|
+
} from './types'
|
|
10
16
|
|
|
11
17
|
// HOOK
|
|
12
18
|
|
|
19
|
+
export function useInfiniteQuery<
|
|
20
|
+
TQueryFnData = unknown,
|
|
21
|
+
TError = unknown,
|
|
22
|
+
TData = TQueryFnData,
|
|
23
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
24
|
+
>(
|
|
25
|
+
options: UseInfiniteQueryOptions<
|
|
26
|
+
TQueryFnData,
|
|
27
|
+
TError,
|
|
28
|
+
TData,
|
|
29
|
+
TQueryFnData,
|
|
30
|
+
TQueryKey
|
|
31
|
+
> & {
|
|
32
|
+
initialData:
|
|
33
|
+
| NonUndefinedGuard<InfiniteData<TQueryFnData>>
|
|
34
|
+
| (() => NonUndefinedGuard<InfiniteData<TQueryFnData>>)
|
|
35
|
+
| undefined
|
|
36
|
+
},
|
|
37
|
+
): DefinedUseInfiniteQueryResult<TData, TError>
|
|
13
38
|
export function useInfiniteQuery<
|
|
14
39
|
TQueryFnData = unknown,
|
|
15
40
|
TError = unknown,
|
|
@@ -24,6 +49,7 @@ export function useInfiniteQuery<
|
|
|
24
49
|
TQueryKey
|
|
25
50
|
>,
|
|
26
51
|
): UseInfiniteQueryResult<TData, TError>
|
|
52
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
27
53
|
export function useInfiniteQuery<
|
|
28
54
|
TQueryFnData = unknown,
|
|
29
55
|
TError = unknown,
|
|
@@ -42,6 +68,7 @@ export function useInfiniteQuery<
|
|
|
42
68
|
'queryKey'
|
|
43
69
|
>,
|
|
44
70
|
): UseInfiniteQueryResult<TData, TError>
|
|
71
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
45
72
|
export function useInfiniteQuery<
|
|
46
73
|
TQueryFnData = unknown,
|
|
47
74
|
TError = unknown,
|
package/src/useQuery.ts
CHANGED
|
@@ -55,7 +55,7 @@ export function useQuery<
|
|
|
55
55
|
options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
56
56
|
): UseQueryResult<TData, TError>
|
|
57
57
|
|
|
58
|
-
/** @deprecated */
|
|
58
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
59
59
|
export function useQuery<
|
|
60
60
|
TQueryFnData = unknown,
|
|
61
61
|
TError = unknown,
|
|
@@ -68,7 +68,7 @@ export function useQuery<
|
|
|
68
68
|
'queryKey' | 'initialData'
|
|
69
69
|
>,
|
|
70
70
|
): UseQueryResult<TData, TError>
|
|
71
|
-
/** @deprecated */
|
|
71
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
72
72
|
export function useQuery<
|
|
73
73
|
TQueryFnData = unknown,
|
|
74
74
|
TError = unknown,
|
|
@@ -81,7 +81,7 @@ export function useQuery<
|
|
|
81
81
|
'queryKey' | 'initialData'
|
|
82
82
|
> & { initialData: TQueryFnData | (() => TQueryFnData) },
|
|
83
83
|
): DefinedUseQueryResult<TData, TError>
|
|
84
|
-
/** @deprecated */
|
|
84
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
85
85
|
export function useQuery<
|
|
86
86
|
TQueryFnData = unknown,
|
|
87
87
|
TError = unknown,
|
|
@@ -94,7 +94,7 @@ export function useQuery<
|
|
|
94
94
|
'queryKey'
|
|
95
95
|
>,
|
|
96
96
|
): UseQueryResult<TData, TError>
|
|
97
|
-
/** @deprecated */
|
|
97
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
98
98
|
export function useQuery<
|
|
99
99
|
TQueryFnData = unknown,
|
|
100
100
|
TError = unknown,
|
|
@@ -108,7 +108,7 @@ export function useQuery<
|
|
|
108
108
|
'queryKey' | 'queryFn' | 'initialData'
|
|
109
109
|
> & { initialData?: () => undefined },
|
|
110
110
|
): UseQueryResult<TData, TError>
|
|
111
|
-
/** @deprecated */
|
|
111
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
112
112
|
export function useQuery<
|
|
113
113
|
TQueryFnData = unknown,
|
|
114
114
|
TError = unknown,
|
|
@@ -122,7 +122,7 @@ export function useQuery<
|
|
|
122
122
|
'queryKey' | 'queryFn' | 'initialData'
|
|
123
123
|
> & { initialData: TQueryFnData | (() => TQueryFnData) },
|
|
124
124
|
): DefinedUseQueryResult<TData, TError>
|
|
125
|
-
/** @deprecated */
|
|
125
|
+
/** @deprecated This function overload will be removed in the next major version. */
|
|
126
126
|
export function useQuery<
|
|
127
127
|
TQueryFnData = unknown,
|
|
128
128
|
TError = unknown,
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { InfiniteQueryObserver } from '@tanstack/query-core'
|
|
2
|
+
import { useBaseQuery } from './useBaseQuery'
|
|
3
|
+
import type {
|
|
4
|
+
InfiniteQueryObserverSuccessResult,
|
|
5
|
+
OmitKeyof,
|
|
6
|
+
QueryKey,
|
|
7
|
+
QueryObserver,
|
|
8
|
+
WithRequired,
|
|
9
|
+
} from '@tanstack/query-core'
|
|
10
|
+
import type {
|
|
11
|
+
UseInfiniteQueryOptions,
|
|
12
|
+
UseSuspenseInfiniteQueryResult,
|
|
13
|
+
} from './types'
|
|
14
|
+
|
|
15
|
+
export type UseSuspenseInfiniteQueryOptions<
|
|
16
|
+
TQueryFnData = unknown,
|
|
17
|
+
TError = unknown,
|
|
18
|
+
TData = TQueryFnData,
|
|
19
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
20
|
+
> = WithRequired<
|
|
21
|
+
OmitKeyof<
|
|
22
|
+
UseInfiniteQueryOptions<
|
|
23
|
+
TQueryFnData,
|
|
24
|
+
TError,
|
|
25
|
+
TData,
|
|
26
|
+
TQueryFnData,
|
|
27
|
+
TQueryKey
|
|
28
|
+
>,
|
|
29
|
+
| 'suspense'
|
|
30
|
+
| 'useErrorBoundary'
|
|
31
|
+
| 'enabled'
|
|
32
|
+
| 'placeholderData'
|
|
33
|
+
| 'networkMode'
|
|
34
|
+
| 'initialData'
|
|
35
|
+
>,
|
|
36
|
+
'queryKey'
|
|
37
|
+
>
|
|
38
|
+
|
|
39
|
+
export function useSuspenseInfiniteQuery<
|
|
40
|
+
TQueryFnData = unknown,
|
|
41
|
+
TError = unknown,
|
|
42
|
+
TData = TQueryFnData,
|
|
43
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
44
|
+
>(
|
|
45
|
+
options: UseSuspenseInfiniteQueryOptions<
|
|
46
|
+
TQueryFnData,
|
|
47
|
+
TError,
|
|
48
|
+
TData,
|
|
49
|
+
TQueryKey
|
|
50
|
+
>,
|
|
51
|
+
): UseSuspenseInfiniteQueryResult<TData, TError> {
|
|
52
|
+
return useBaseQuery(
|
|
53
|
+
{
|
|
54
|
+
...options,
|
|
55
|
+
enabled: true,
|
|
56
|
+
suspense: true,
|
|
57
|
+
useErrorBoundary: true,
|
|
58
|
+
networkMode: 'always',
|
|
59
|
+
},
|
|
60
|
+
InfiniteQueryObserver as typeof QueryObserver,
|
|
61
|
+
) as InfiniteQueryObserverSuccessResult<TData, TError>
|
|
62
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Hydrate.d.ts","sourceRoot":"","sources":["../../src/Hydrate.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,cAAc,GAAG,cAAmB,QAgB9C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,eAAO,MAAM,OAAO,iCAAkC,YAAY,uEAGjE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryClientProvider.d.ts","sourceRoot":"","sources":["../../src/QueryClientProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,uBAAuB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;KACjE;CACF;AAED,eAAO,MAAM,cAAc,wCAE1B,CAAA;AA4BD,eAAO,MAAM,cAAc,iBAAiB,cAAc,gBAUzD,CAAA;AAED,aAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AACD,aAAK,mCAAmC,GAAG,cAAc,GAAG;IAC1D,cAAc,CAAC,EAAE,KAAK,CAAA;CACvB,GAAG,4BAA4B,CAAA;AAChC,aAAK,0CAA0C,GAAG;IAChD,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,4BAA4B,CAAA;AAEhC,oBAAY,wBAAwB,GAChC,mCAAmC,GACnC,0CAA0C,CAAA;AAE9C,eAAO,MAAM,mBAAmB,mDAK7B,wBAAwB,KAAG,WAuB7B,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryErrorResetBoundary.d.ts","sourceRoot":"","sources":["../../src/QueryErrorResetBoundary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAqBD,eAAO,MAAM,0BAA0B,oCACW,CAAA;AAIlD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EACJ,CAAC,CAAC,KAAK,EAAE,4BAA4B,KAAK,KAAK,CAAC,SAAS,CAAC,GAC1D,KAAK,CAAC,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,uBAAuB,kBAEjC,4BAA4B,gBAS9B,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Hydrate.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/Hydrate.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryClientProvider.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/QueryClientProvider.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResetErrorBoundary.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/QueryResetErrorBoundary.test.tsx"],"names":[],"mappings":"AAQA,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,8BAA8B;QACtC,QAAQ,EAAE,GAAG,CAAA;KACd;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryOptions.types.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/queryOptions.types.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-hydration.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ssr-hydration.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ssr.test.tsx"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suspense.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/suspense.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteQuery.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/useInfiniteQuery.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsFetching.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/useIsFetching.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsMutating.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/useIsMutating.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMutation.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/useMutation.test.tsx"],"names":[],"mappings":"AACA,OAAO,2BAA2B,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useQueries.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/useQueries.test.tsx"],"names":[],"mappings":""}
|