@tanstack/react-query 4.42.1 → 4.43.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__/usePrefetchInfiniteQuery.types.test.d.ts +2 -0
- package/build/lib/__tests__/usePrefetchInfiniteQuery.types.test.d.ts.map +1 -0
- package/build/lib/__tests__/usePrefetchQuery.types.test.d.ts +2 -0
- package/build/lib/__tests__/usePrefetchQuery.types.test.d.ts.map +1 -0
- package/build/lib/index.d.ts +2 -0
- package/build/lib/index.d.ts.map +1 -1
- 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/usePrefetchInfiniteQuery.d.ts +3 -0
- package/build/lib/usePrefetchInfiniteQuery.d.ts.map +1 -0
- package/build/lib/usePrefetchInfiniteQuery.esm.js +12 -0
- package/build/lib/usePrefetchInfiniteQuery.esm.js.map +1 -0
- package/build/lib/usePrefetchInfiniteQuery.js +16 -0
- package/build/lib/usePrefetchInfiniteQuery.js.map +1 -0
- package/build/lib/usePrefetchInfiniteQuery.mjs +12 -0
- package/build/lib/usePrefetchInfiniteQuery.mjs.map +1 -0
- package/build/lib/usePrefetchQuery.d.ts +3 -0
- package/build/lib/usePrefetchQuery.d.ts.map +1 -0
- package/build/lib/usePrefetchQuery.esm.js +12 -0
- package/build/lib/usePrefetchQuery.esm.js.map +1 -0
- package/build/lib/usePrefetchQuery.js +16 -0
- package/build/lib/usePrefetchQuery.js.map +1 -0
- package/build/lib/usePrefetchQuery.mjs +12 -0
- package/build/lib/usePrefetchQuery.mjs.map +1 -0
- package/build/umd/index.development.js +96 -221
- 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 +4 -4
- package/src/__tests__/usePrefetchInfiniteQuery.types.test.tsx +45 -0
- package/src/__tests__/usePrefetchQuery.types.test.tsx +56 -0
- package/src/index.ts +2 -0
- package/src/usePrefetchInfiniteQuery.ts +23 -0
- package/src/usePrefetchQuery.ts +23 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-query",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.43.0",
|
|
4
4
|
"description": "Hooks for managing, caching and syncing asynchronous and remote data in React",
|
|
5
5
|
"author": "tannerlinsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/jscodeshift": "^0.11.3",
|
|
42
42
|
"@types/react": "^19.1.9",
|
|
43
43
|
"@types/react-dom": "^19.1.7",
|
|
44
|
-
"@types/use-sync-external-store": "^
|
|
44
|
+
"@types/use-sync-external-store": "^1.5.0",
|
|
45
45
|
"react": "^19.1.1",
|
|
46
46
|
"react-17": "npm:react@^17.0.2",
|
|
47
47
|
"react-18": "npm:react@^18.2.0",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"react-error-boundary": "^3.1.4"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"use-sync-external-store": "^1.
|
|
56
|
-
"@tanstack/query-core": "4.
|
|
55
|
+
"use-sync-external-store": "^1.6.0",
|
|
56
|
+
"@tanstack/query-core": "4.43.0"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { expectTypeOf } from 'expect-type'
|
|
2
|
+
import { usePrefetchInfiniteQuery } from '../usePrefetchInfiniteQuery'
|
|
3
|
+
import { doNotExecute } from './utils'
|
|
4
|
+
|
|
5
|
+
describe('usePrefetchInfiniteQuery', () => {
|
|
6
|
+
it('should return nothing', () => {
|
|
7
|
+
doNotExecute(() => {
|
|
8
|
+
const result = usePrefetchInfiniteQuery({
|
|
9
|
+
queryKey: ['key'],
|
|
10
|
+
queryFn: () => Promise.resolve(5),
|
|
11
|
+
getNextPageParam: () => 1,
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
expectTypeOf(result).toEqualTypeOf<void>()
|
|
15
|
+
})
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('should not allow refetchInterval, enabled or throwOnError options', () => {
|
|
19
|
+
doNotExecute(() => {
|
|
20
|
+
usePrefetchInfiniteQuery({
|
|
21
|
+
queryKey: ['key'],
|
|
22
|
+
queryFn: () => Promise.resolve(5),
|
|
23
|
+
getNextPageParam: () => 1,
|
|
24
|
+
// @ts-expect-error TS2353
|
|
25
|
+
refetchInterval: 1000,
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
usePrefetchInfiniteQuery({
|
|
29
|
+
queryKey: ['key'],
|
|
30
|
+
queryFn: () => Promise.resolve(5),
|
|
31
|
+
getNextPageParam: () => 1,
|
|
32
|
+
// @ts-expect-error TS2353
|
|
33
|
+
enabled: true,
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
usePrefetchInfiniteQuery({
|
|
37
|
+
queryKey: ['key'],
|
|
38
|
+
queryFn: () => Promise.resolve(5),
|
|
39
|
+
getNextPageParam: () => 1,
|
|
40
|
+
// @ts-expect-error TS2353
|
|
41
|
+
throwOnError: true,
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
})
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { expectTypeOf } from 'expect-type'
|
|
2
|
+
import { usePrefetchQuery } from '..'
|
|
3
|
+
import { doNotExecute } from './utils'
|
|
4
|
+
|
|
5
|
+
describe('usePrefetchQuery', () => {
|
|
6
|
+
it('should return nothing', () => {
|
|
7
|
+
doNotExecute(() => {
|
|
8
|
+
const result = usePrefetchQuery({
|
|
9
|
+
queryKey: ['key'],
|
|
10
|
+
queryFn: () => Promise.resolve(5),
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
expectTypeOf(result).toEqualTypeOf<void>()
|
|
14
|
+
})
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
it('should not allow refetchInterval, enabled or throwOnError options', () => {
|
|
18
|
+
doNotExecute(() => {
|
|
19
|
+
usePrefetchQuery({
|
|
20
|
+
queryKey: ['key'],
|
|
21
|
+
queryFn: () => Promise.resolve(5),
|
|
22
|
+
// @ts-expect-error TS2345
|
|
23
|
+
refetchInterval: 1000,
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
usePrefetchQuery({
|
|
27
|
+
queryKey: ['key'],
|
|
28
|
+
queryFn: () => Promise.resolve(5),
|
|
29
|
+
// @ts-expect-error TS2345
|
|
30
|
+
enabled: true,
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
usePrefetchQuery({
|
|
34
|
+
queryKey: ['key'],
|
|
35
|
+
queryFn: () => Promise.resolve(5),
|
|
36
|
+
// @ts-expect-error TS2345
|
|
37
|
+
throwOnError: true,
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
it('should not allow skipToken in queryFn', () => {
|
|
43
|
+
doNotExecute(() => {
|
|
44
|
+
usePrefetchQuery({
|
|
45
|
+
queryKey: ['key'],
|
|
46
|
+
// @ts-expect-error
|
|
47
|
+
queryFn: skipToken,
|
|
48
|
+
})
|
|
49
|
+
usePrefetchQuery({
|
|
50
|
+
queryKey: ['key'],
|
|
51
|
+
// @ts-expect-error
|
|
52
|
+
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
})
|
package/src/index.ts
CHANGED
|
@@ -46,3 +46,5 @@ export { useIsMutating } from './useIsMutating'
|
|
|
46
46
|
export { useMutation } from './useMutation'
|
|
47
47
|
export { useInfiniteQuery } from './useInfiniteQuery'
|
|
48
48
|
export { useIsRestoring, IsRestoringProvider } from './isRestoring'
|
|
49
|
+
export { usePrefetchQuery } from './usePrefetchQuery'
|
|
50
|
+
export { usePrefetchInfiniteQuery } from './usePrefetchInfiniteQuery'
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useQueryClient } from './QueryClientProvider'
|
|
2
|
+
import type {
|
|
3
|
+
FetchInfiniteQueryOptions,
|
|
4
|
+
QueryKey,
|
|
5
|
+
WithRequired,
|
|
6
|
+
} from '@tanstack/query-core'
|
|
7
|
+
|
|
8
|
+
export function usePrefetchInfiniteQuery<
|
|
9
|
+
TQueryFnData = unknown,
|
|
10
|
+
TError = unknown,
|
|
11
|
+
TData = TQueryFnData,
|
|
12
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
13
|
+
>(
|
|
14
|
+
options: WithRequired<
|
|
15
|
+
FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
16
|
+
'queryKey'
|
|
17
|
+
>,
|
|
18
|
+
) {
|
|
19
|
+
const client = useQueryClient()
|
|
20
|
+
if (!client.getQueryState(options.queryKey)) {
|
|
21
|
+
client.prefetchInfiniteQuery(options)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useQueryClient } from './QueryClientProvider'
|
|
2
|
+
import type {
|
|
3
|
+
FetchQueryOptions,
|
|
4
|
+
QueryKey,
|
|
5
|
+
WithRequired,
|
|
6
|
+
} from '@tanstack/query-core'
|
|
7
|
+
|
|
8
|
+
export function usePrefetchQuery<
|
|
9
|
+
TQueryFnData = unknown,
|
|
10
|
+
TError = unknown,
|
|
11
|
+
TData = TQueryFnData,
|
|
12
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
13
|
+
>(
|
|
14
|
+
options: WithRequired<
|
|
15
|
+
FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
16
|
+
'queryKey'
|
|
17
|
+
>,
|
|
18
|
+
) {
|
|
19
|
+
const client = useQueryClient()
|
|
20
|
+
if (!client.getQueryState(options.queryKey)) {
|
|
21
|
+
client.prefetchQuery(options)
|
|
22
|
+
}
|
|
23
|
+
}
|