@tanstack/react-query 4.39.1 → 4.39.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-query",
3
- "version": "4.39.1",
3
+ "version": "4.39.2",
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.39.1"
54
+ "@tanstack/query-core": "4.39.2"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
@@ -1,5 +1,7 @@
1
+ import { expectTypeOf } from 'expect-type'
1
2
  import { useQuery } from '../useQuery'
2
3
  import { doNotExecute } from './utils'
4
+ import type { DefinedUseQueryResult, UseQueryResult } from '../types'
3
5
 
4
6
  export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
5
7
  T,
@@ -9,6 +11,39 @@ export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
9
11
 
10
12
  export type Expect<T extends true> = T
11
13
 
14
+ describe('onSuccess', () => {
15
+ it('should be typed correctly', () => {
16
+ doNotExecute(() => {
17
+ expectTypeOf(
18
+ useQuery({
19
+ queryKey: ['posts'],
20
+ queryFn: async () => ({ id: 1 }),
21
+ onSuccess: (data) =>
22
+ expectTypeOf(data).toEqualTypeOf<{ id: number }>(),
23
+ }),
24
+ ).toEqualTypeOf<UseQueryResult<{ id: number }, unknown>>()
25
+ expectTypeOf(
26
+ useQuery({
27
+ queryKey: ['posts'],
28
+ queryFn: async () => ({ id: 1 }),
29
+ initialData: { id: 1 },
30
+ onSuccess: (data) =>
31
+ expectTypeOf(data).toEqualTypeOf<{ id: number }>(),
32
+ }),
33
+ ).toEqualTypeOf<DefinedUseQueryResult<{ id: number }, unknown>>()
34
+ expectTypeOf(
35
+ useQuery({
36
+ queryKey: ['posts'],
37
+ queryFn: async () => ({ id: 1 }),
38
+ initialData: { id: 1 },
39
+ select: (data) => data.id,
40
+ onSuccess: (data) => expectTypeOf(data).toEqualTypeOf<number>(),
41
+ }),
42
+ ).toEqualTypeOf<DefinedUseQueryResult<number, unknown>>()
43
+ })
44
+ })
45
+ })
46
+
12
47
  describe('initialData', () => {
13
48
  describe('Config object overload', () => {
14
49
  it('TData should always be defined when initialData is provided as an object', () => {
@@ -22,7 +22,7 @@ type ProhibitedQueryOptionsKeyInV5 = keyof Pick<
22
22
  'useErrorBoundary' | 'suspense' | 'getNextPageParam' | 'getPreviousPageParam'
23
23
  >
24
24
 
25
- export type UndefinedInitialDataOptions<
25
+ type UndefinedInitialDataOptions<
26
26
  TQueryFnData = unknown,
27
27
  TError = unknown,
28
28
  TData = TQueryFnData,
@@ -34,7 +34,7 @@ export type UndefinedInitialDataOptions<
34
34
  | NonUndefinedGuard<TQueryFnData>
35
35
  }
36
36
 
37
- export type DefinedInitialDataOptions<
37
+ type DefinedInitialDataOptions<
38
38
  TQueryFnData = unknown,
39
39
  TError = unknown,
40
40
  TData = TQueryFnData,
package/src/useQuery.ts CHANGED
@@ -1,10 +1,6 @@
1
1
  'use client'
2
2
  import { QueryObserver, parseQueryArgs } from '@tanstack/query-core'
3
3
  import { useBaseQuery } from './useBaseQuery'
4
- import type {
5
- DefinedInitialDataOptions,
6
- UndefinedInitialDataOptions,
7
- } from './queryOptions'
8
4
  import type {
9
5
  InitialDataFunction,
10
6
  NonUndefinedGuard,
@@ -19,14 +15,6 @@ import type {
19
15
  } from './types'
20
16
 
21
17
  // HOOK
22
- export function useQuery<
23
- TQueryFnData = unknown,
24
- TError = unknown,
25
- TData = TQueryFnData,
26
- TQueryKey extends QueryKey = QueryKey,
27
- >(
28
- options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
29
- ): DefinedUseQueryResult<TData, TError>
30
18
  export function useQuery<
31
19
  TQueryFnData = unknown,
32
20
  TError = unknown,
@@ -42,14 +30,6 @@ export function useQuery<
42
30
  | (() => NonUndefinedGuard<TQueryFnData>)
43
31
  },
44
32
  ): DefinedUseQueryResult<TData, TError>
45
- export function useQuery<
46
- TQueryFnData = unknown,
47
- TError = unknown,
48
- TData = TQueryFnData,
49
- TQueryKey extends QueryKey = QueryKey,
50
- >(
51
- options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
52
- ): UseQueryResult<TData, TError>
53
33
  export function useQuery<
54
34
  TQueryFnData = unknown,
55
35
  TError = unknown,
@@ -2,15 +2,12 @@ import { QueryObserver } from '@tanstack/query-core'
2
2
  import { useBaseQuery } from './useBaseQuery'
3
3
  import type {
4
4
  DefinedQueryObserverResult,
5
+ DistributiveOmit,
5
6
  OmitKeyof,
6
7
  QueryKey,
7
8
  } from '@tanstack/query-core'
8
9
  import type { UseQueryOptions } from './types'
9
10
 
10
- type DistributiveOmit<TObject, TKey extends keyof TObject> = TObject extends any
11
- ? Omit<TObject, TKey>
12
- : never
13
-
14
11
  export type UseSuspenseQueryResult<
15
12
  TData = unknown,
16
13
  TError = unknown,