@tanstack/vue-query 5.91.4 → 5.92.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.
Files changed (54) hide show
  1. package/build/legacy/useIsFetching.cjs +3 -1
  2. package/build/legacy/useIsFetching.cjs.map +1 -1
  3. package/build/legacy/useIsFetching.d.cts +2 -2
  4. package/build/legacy/useIsFetching.d.ts +2 -2
  5. package/build/legacy/useIsFetching.js +3 -1
  6. package/build/legacy/useIsFetching.js.map +1 -1
  7. package/build/legacy/useMutation.cjs +2 -1
  8. package/build/legacy/useMutation.cjs.map +1 -1
  9. package/build/legacy/useMutation.d.cts +2 -2
  10. package/build/legacy/useMutation.d.ts +2 -2
  11. package/build/legacy/useMutation.js +2 -1
  12. package/build/legacy/useMutation.js.map +1 -1
  13. package/build/legacy/useMutationState.cjs +12 -6
  14. package/build/legacy/useMutationState.cjs.map +1 -1
  15. package/build/legacy/useMutationState.d.cts +2 -2
  16. package/build/legacy/useMutationState.d.ts +2 -2
  17. package/build/legacy/useMutationState.js +12 -6
  18. package/build/legacy/useMutationState.js.map +1 -1
  19. package/build/legacy/useQueries.cjs +2 -1
  20. package/build/legacy/useQueries.cjs.map +1 -1
  21. package/build/legacy/useQueries.d.cts +1 -1
  22. package/build/legacy/useQueries.d.ts +1 -1
  23. package/build/legacy/useQueries.js +2 -1
  24. package/build/legacy/useQueries.js.map +1 -1
  25. package/build/modern/useIsFetching.cjs +3 -1
  26. package/build/modern/useIsFetching.cjs.map +1 -1
  27. package/build/modern/useIsFetching.d.cts +2 -2
  28. package/build/modern/useIsFetching.d.ts +2 -2
  29. package/build/modern/useIsFetching.js +3 -1
  30. package/build/modern/useIsFetching.js.map +1 -1
  31. package/build/modern/useMutation.cjs +2 -1
  32. package/build/modern/useMutation.cjs.map +1 -1
  33. package/build/modern/useMutation.d.cts +2 -2
  34. package/build/modern/useMutation.d.ts +2 -2
  35. package/build/modern/useMutation.js +2 -1
  36. package/build/modern/useMutation.js.map +1 -1
  37. package/build/modern/useMutationState.cjs +12 -6
  38. package/build/modern/useMutationState.cjs.map +1 -1
  39. package/build/modern/useMutationState.d.cts +2 -2
  40. package/build/modern/useMutationState.d.ts +2 -2
  41. package/build/modern/useMutationState.js +12 -6
  42. package/build/modern/useMutationState.js.map +1 -1
  43. package/build/modern/useQueries.cjs +2 -1
  44. package/build/modern/useQueries.cjs.map +1 -1
  45. package/build/modern/useQueries.d.cts +1 -1
  46. package/build/modern/useQueries.d.ts +1 -1
  47. package/build/modern/useQueries.js +2 -1
  48. package/build/modern/useQueries.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/__mocks__/useBaseQuery.ts +3 -3
  51. package/src/useIsFetching.ts +8 -3
  52. package/src/useMutation.ts +17 -6
  53. package/src/useMutationState.ts +16 -8
  54. package/src/useQueries.ts +6 -1
@@ -39,9 +39,13 @@ export type UseMutationOptions<
39
39
  TError = DefaultError,
40
40
  TVariables = void,
41
41
  TOnMutateResult = unknown,
42
- > = MaybeRefDeep<
43
- UseMutationOptionsBase<TData, TError, TVariables, TOnMutateResult>
44
- >
42
+ > =
43
+ | MaybeRefDeep<
44
+ UseMutationOptionsBase<TData, TError, TVariables, TOnMutateResult>
45
+ >
46
+ | (() => MaybeRefDeep<
47
+ UseMutationOptionsBase<TData, TError, TVariables, TOnMutateResult>
48
+ >)
45
49
 
46
50
  type MutateSyncFunction<
47
51
  TData = unknown,
@@ -77,8 +81,11 @@ export function useMutation<
77
81
  TVariables = void,
78
82
  TOnMutateResult = unknown,
79
83
  >(
80
- mutationOptions: MaybeRefDeep<
81
- UseMutationOptionsBase<TData, TError, TVariables, TOnMutateResult>
84
+ mutationOptions: UseMutationOptions<
85
+ TData,
86
+ TError,
87
+ TVariables,
88
+ TOnMutateResult
82
89
  >,
83
90
  queryClient?: QueryClient,
84
91
  ): UseMutationReturnType<TData, TError, TVariables, TOnMutateResult> {
@@ -92,7 +99,11 @@ export function useMutation<
92
99
 
93
100
  const client = queryClient || useQueryClient()
94
101
  const options = computed(() => {
95
- return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))
102
+ const resolvedOptions =
103
+ typeof mutationOptions === 'function'
104
+ ? mutationOptions()
105
+ : mutationOptions
106
+ return client.defaultMutationOptions(cloneDeepUnref(resolvedOptions))
96
107
  })
97
108
  const observer = new MutationObserver(client, options.value)
98
109
  const state = options.value.shallow
@@ -21,7 +21,7 @@ import type { MutationCache } from './mutationCache'
21
21
  export type MutationFilters = MaybeRefDeep<MF>
22
22
 
23
23
  export function useIsMutating(
24
- filters: MutationFilters = {},
24
+ filters: MutationFilters | (() => MutationFilters) = {},
25
25
  queryClient?: QueryClient,
26
26
  ): Ref<number> {
27
27
  if (process.env.NODE_ENV === 'development') {
@@ -37,7 +37,7 @@ export function useIsMutating(
37
37
  const mutationState = useMutationState(
38
38
  {
39
39
  filters: computed(() => ({
40
- ...cloneDeepUnref(filters),
40
+ ...cloneDeepUnref(typeof filters === 'function' ? filters() : filters),
41
41
  status: 'pending' as const,
42
42
  })),
43
43
  },
@@ -66,18 +66,26 @@ function getResult<TResult = MutationState>(
66
66
  }
67
67
 
68
68
  export function useMutationState<TResult = MutationState>(
69
- options: MutationStateOptions<TResult> = {},
69
+ options:
70
+ | MutationStateOptions<TResult>
71
+ | (() => MutationStateOptions<TResult>) = {},
70
72
  queryClient?: QueryClient,
71
73
  ): Readonly<Ref<Array<TResult>>> {
72
- const filters = computed(() => cloneDeepUnref(options.filters))
74
+ const resolvedOptions = computed(() => {
75
+ const newOptions = typeof options === 'function' ? options() : options
76
+ return {
77
+ filters: cloneDeepUnref(newOptions.filters),
78
+ select: newOptions.select,
79
+ }
80
+ })
73
81
  const mutationCache = (queryClient || useQueryClient()).getMutationCache()
74
- const state = shallowRef(getResult(mutationCache, options))
82
+ const state = shallowRef(getResult(mutationCache, resolvedOptions.value))
75
83
  const unsubscribe = mutationCache.subscribe(() => {
76
- state.value = getResult(mutationCache, options)
84
+ state.value = getResult(mutationCache, resolvedOptions.value)
77
85
  })
78
86
 
79
- watch(filters, () => {
80
- state.value = getResult(mutationCache, options)
87
+ watch(resolvedOptions, () => {
88
+ state.value = getResult(mutationCache, resolvedOptions.value)
81
89
  })
82
90
 
83
91
  onScopeDispose(() => {
package/src/useQueries.ts CHANGED
@@ -240,6 +240,7 @@ export function useQueries<
240
240
  ...options
241
241
  }: ShallowOption & {
242
242
  queries:
243
+ | (() => MaybeRefDeep<UseQueriesOptionsArg<T>>)
243
244
  | MaybeRefDeep<UseQueriesOptionsArg<T>>
244
245
  | MaybeRefDeep<
245
246
  readonly [
@@ -261,8 +262,12 @@ export function useQueries<
261
262
  const client = queryClient || useQueryClient()
262
263
 
263
264
  const defaultedQueries = computed(() => {
265
+ const resolvedQueries =
266
+ typeof queries === 'function'
267
+ ? (queries as () => MaybeRefDeep<UseQueriesOptionsArg<T>>)()
268
+ : queries
264
269
  // Only unref the top level array.
265
- const queriesRaw = unref(queries) as ReadonlyArray<any>
270
+ const queriesRaw = unref(resolvedQueries) as ReadonlyArray<any>
266
271
 
267
272
  // Unref the rest for each element in the top level array.
268
273
  return queriesRaw.map((queryOptions) => {