@tanstack/vue-query 5.0.0-alpha.7 → 5.0.0-alpha.70

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 (275) hide show
  1. package/README.md +18 -14
  2. package/build/lib/__mocks__/useBaseQuery.d.ts +1 -0
  3. package/build/lib/__mocks__/useBaseQuery.d.ts.map +1 -0
  4. package/build/lib/__mocks__/useQueryClient.d.ts +1 -0
  5. package/build/lib/__mocks__/useQueryClient.d.ts.map +1 -0
  6. package/build/lib/__tests__/mutationCache.test.d.ts +1 -0
  7. package/build/lib/__tests__/mutationCache.test.d.ts.map +1 -0
  8. package/build/lib/__tests__/queryCache.test.d.ts +1 -0
  9. package/build/lib/__tests__/queryCache.test.d.ts.map +1 -0
  10. package/build/lib/__tests__/queryClient.test.d.ts +1 -0
  11. package/build/lib/__tests__/queryClient.test.d.ts.map +1 -0
  12. package/build/lib/__tests__/test-utils.d.ts +3 -2
  13. package/build/lib/__tests__/test-utils.d.ts.map +1 -0
  14. package/build/lib/__tests__/useInfiniteQuery.test.d.ts +1 -0
  15. package/build/lib/__tests__/useInfiniteQuery.test.d.ts.map +1 -0
  16. package/build/lib/__tests__/useInfiniteQuery.types.test.d.ts +1 -0
  17. package/build/lib/__tests__/useInfiniteQuery.types.test.d.ts.map +1 -0
  18. package/build/lib/__tests__/useIsFetching.test.d.ts +1 -0
  19. package/build/lib/__tests__/useIsFetching.test.d.ts.map +1 -0
  20. package/build/lib/__tests__/useIsMutating.test.d.ts +1 -0
  21. package/build/lib/__tests__/useIsMutating.test.d.ts.map +1 -0
  22. package/build/lib/__tests__/useMutation.test.d.ts +1 -0
  23. package/build/lib/__tests__/useMutation.test.d.ts.map +1 -0
  24. package/build/lib/__tests__/useMutation.types.test.d.ts +1 -0
  25. package/build/lib/__tests__/useMutation.types.test.d.ts.map +1 -0
  26. package/build/lib/__tests__/useQueries.test.d.ts +1 -0
  27. package/build/lib/__tests__/useQueries.test.d.ts.map +1 -0
  28. package/build/lib/__tests__/useQuery.test.d.ts +1 -0
  29. package/build/lib/__tests__/useQuery.test.d.ts.map +1 -0
  30. package/build/lib/__tests__/useQuery.types.test.d.ts +1 -0
  31. package/build/lib/__tests__/useQuery.types.test.d.ts.map +1 -0
  32. package/build/lib/__tests__/useQueryClient.test.d.ts +1 -0
  33. package/build/lib/__tests__/useQueryClient.test.d.ts.map +1 -0
  34. package/build/lib/__tests__/utils.test.d.ts +1 -0
  35. package/build/lib/__tests__/utils.test.d.ts.map +1 -0
  36. package/build/lib/__tests__/vueQueryPlugin.test.d.ts +1 -0
  37. package/build/lib/__tests__/vueQueryPlugin.test.d.ts.map +1 -0
  38. package/build/lib/devtools/{devtools.mjs → devtools.cjs} +62 -20
  39. package/build/lib/devtools/devtools.cjs.map +1 -0
  40. package/build/lib/devtools/devtools.d.ts +1 -0
  41. package/build/lib/devtools/devtools.d.ts.map +1 -0
  42. package/build/lib/devtools/devtools.js +61 -25
  43. package/build/lib/devtools/devtools.js.map +1 -1
  44. package/build/lib/devtools/devtools.legacy.cjs +198 -0
  45. package/build/lib/devtools/devtools.legacy.cjs.map +1 -0
  46. package/build/lib/devtools/{devtools.esm.js → devtools.legacy.js} +48 -8
  47. package/build/lib/devtools/devtools.legacy.js.map +1 -0
  48. package/build/lib/devtools/{utils.mjs → utils.cjs} +11 -5
  49. package/build/lib/devtools/{utils.mjs.map → utils.cjs.map} +1 -1
  50. package/build/lib/devtools/utils.d.ts +2 -1
  51. package/build/lib/devtools/utils.d.ts.map +1 -0
  52. package/build/lib/devtools/utils.js +4 -10
  53. package/build/lib/devtools/utils.js.map +1 -1
  54. package/build/lib/devtools/utils.legacy.cjs +85 -0
  55. package/build/lib/devtools/utils.legacy.cjs.map +1 -0
  56. package/build/lib/devtools/{utils.esm.js → utils.legacy.js} +4 -4
  57. package/build/lib/devtools/utils.legacy.js.map +1 -0
  58. package/build/lib/index.cjs +38 -0
  59. package/build/lib/index.cjs.map +1 -0
  60. package/build/lib/index.d.ts +1 -0
  61. package/build/lib/index.d.ts.map +1 -0
  62. package/build/lib/index.js +13 -37
  63. package/build/lib/index.js.map +1 -1
  64. package/build/lib/index.legacy.cjs +38 -0
  65. package/build/lib/index.legacy.cjs.map +1 -0
  66. package/build/lib/index.legacy.js +14 -0
  67. package/build/lib/index.legacy.js.map +1 -0
  68. package/build/lib/mutationCache.cjs +16 -0
  69. package/build/lib/{mutationCache.mjs.map → mutationCache.cjs.map} +1 -1
  70. package/build/lib/mutationCache.d.ts +1 -0
  71. package/build/lib/mutationCache.d.ts.map +1 -0
  72. package/build/lib/mutationCache.js +6 -8
  73. package/build/lib/mutationCache.js.map +1 -1
  74. package/build/lib/mutationCache.legacy.cjs +16 -0
  75. package/build/lib/mutationCache.legacy.cjs.map +1 -0
  76. package/build/lib/{mutationCache.esm.js → mutationCache.legacy.js} +2 -2
  77. package/build/lib/mutationCache.legacy.js.map +1 -0
  78. package/build/lib/queryCache.cjs +16 -0
  79. package/build/lib/{queryCache.mjs.map → queryCache.cjs.map} +1 -1
  80. package/build/lib/queryCache.d.ts +1 -0
  81. package/build/lib/queryCache.d.ts.map +1 -0
  82. package/build/lib/queryCache.js +6 -8
  83. package/build/lib/queryCache.js.map +1 -1
  84. package/build/lib/queryCache.legacy.cjs +16 -0
  85. package/build/lib/queryCache.legacy.cjs.map +1 -0
  86. package/build/lib/{queryCache.esm.js → queryCache.legacy.js} +2 -2
  87. package/build/lib/queryCache.legacy.js.map +1 -0
  88. package/build/lib/queryClient.cjs +86 -0
  89. package/build/lib/{queryClient.mjs.map → queryClient.cjs.map} +1 -1
  90. package/build/lib/queryClient.d.ts +1 -0
  91. package/build/lib/queryClient.d.ts.map +1 -0
  92. package/build/lib/queryClient.js +32 -34
  93. package/build/lib/queryClient.js.map +1 -1
  94. package/build/lib/queryClient.legacy.cjs +86 -0
  95. package/build/lib/queryClient.legacy.cjs.map +1 -0
  96. package/build/lib/{queryClient.esm.js → queryClient.legacy.js} +4 -4
  97. package/build/lib/queryClient.legacy.js.map +1 -0
  98. package/build/lib/types.d.ts +4 -3
  99. package/build/lib/types.d.ts.map +1 -0
  100. package/build/lib/useBaseQuery.cjs +69 -0
  101. package/build/lib/useBaseQuery.cjs.map +1 -0
  102. package/build/lib/useBaseQuery.d.ts +3 -2
  103. package/build/lib/useBaseQuery.d.ts.map +1 -0
  104. package/build/lib/useBaseQuery.js +23 -25
  105. package/build/lib/useBaseQuery.js.map +1 -1
  106. package/build/lib/useBaseQuery.legacy.cjs +69 -0
  107. package/build/lib/useBaseQuery.legacy.cjs.map +1 -0
  108. package/build/lib/{useBaseQuery.esm.js → useBaseQuery.legacy.js} +12 -12
  109. package/build/lib/useBaseQuery.legacy.js.map +1 -0
  110. package/build/lib/{useInfiniteQuery.mjs → useInfiniteQuery.cjs} +8 -6
  111. package/build/lib/{useInfiniteQuery.mjs.map → useInfiniteQuery.cjs.map} +1 -1
  112. package/build/lib/useInfiniteQuery.d.ts +4 -3
  113. package/build/lib/useInfiniteQuery.d.ts.map +1 -0
  114. package/build/lib/useInfiniteQuery.js +5 -7
  115. package/build/lib/useInfiniteQuery.js.map +1 -1
  116. package/build/lib/useInfiniteQuery.legacy.cjs +20 -0
  117. package/build/lib/useInfiniteQuery.legacy.cjs.map +1 -0
  118. package/build/lib/{useInfiniteQuery.esm.js → useInfiniteQuery.legacy.js} +2 -2
  119. package/build/lib/useInfiniteQuery.legacy.js.map +1 -0
  120. package/build/lib/useIsFetching.cjs +29 -0
  121. package/build/lib/useIsFetching.cjs.map +1 -0
  122. package/build/lib/useIsFetching.d.ts +2 -1
  123. package/build/lib/useIsFetching.d.ts.map +1 -0
  124. package/build/lib/useIsFetching.js +13 -12
  125. package/build/lib/useIsFetching.js.map +1 -1
  126. package/build/lib/useIsFetching.legacy.cjs +29 -0
  127. package/build/lib/useIsFetching.legacy.cjs.map +1 -0
  128. package/build/lib/{useIsFetching.esm.js → useIsFetching.legacy.js} +7 -4
  129. package/build/lib/useIsFetching.legacy.js.map +1 -0
  130. package/build/lib/useMutation.cjs +43 -0
  131. package/build/lib/useMutation.cjs.map +1 -0
  132. package/build/lib/useMutation.d.ts +5 -4
  133. package/build/lib/useMutation.d.ts.map +1 -0
  134. package/build/lib/useMutation.js +17 -17
  135. package/build/lib/useMutation.js.map +1 -1
  136. package/build/lib/useMutation.legacy.cjs +43 -0
  137. package/build/lib/useMutation.legacy.cjs.map +1 -0
  138. package/build/lib/{useMutation.esm.js → useMutation.legacy.js} +7 -5
  139. package/build/lib/useMutation.legacy.js.map +1 -0
  140. package/build/lib/useMutationState.cjs +43 -0
  141. package/build/lib/useMutationState.cjs.map +1 -0
  142. package/build/lib/useMutationState.d.ts +5 -4
  143. package/build/lib/useMutationState.d.ts.map +1 -0
  144. package/build/lib/useMutationState.js +20 -16
  145. package/build/lib/useMutationState.js.map +1 -1
  146. package/build/lib/useMutationState.legacy.cjs +43 -0
  147. package/build/lib/useMutationState.legacy.cjs.map +1 -0
  148. package/build/lib/{useMutationState.esm.js → useMutationState.legacy.js} +13 -6
  149. package/build/lib/useMutationState.legacy.js.map +1 -0
  150. package/build/lib/useQueries.cjs +63 -0
  151. package/build/lib/{useQueries.esm.js.map → useQueries.cjs.map} +1 -1
  152. package/build/lib/useQueries.d.ts +12 -11
  153. package/build/lib/useQueries.d.ts.map +1 -0
  154. package/build/lib/useQueries.js +38 -25
  155. package/build/lib/useQueries.js.map +1 -1
  156. package/build/lib/useQueries.legacy.cjs +63 -0
  157. package/build/lib/useQueries.legacy.cjs.map +1 -0
  158. package/build/lib/useQueries.legacy.js +61 -0
  159. package/build/lib/useQueries.legacy.js.map +1 -0
  160. package/build/lib/useQuery.cjs +15 -0
  161. package/build/lib/{useQuery.mjs.map → useQuery.cjs.map} +1 -1
  162. package/build/lib/useQuery.d.ts +4 -3
  163. package/build/lib/useQuery.d.ts.map +1 -0
  164. package/build/lib/useQuery.js +4 -6
  165. package/build/lib/useQuery.js.map +1 -1
  166. package/build/lib/useQuery.legacy.cjs +15 -0
  167. package/build/lib/useQuery.legacy.cjs.map +1 -0
  168. package/build/lib/{useQuery.esm.js → useQuery.legacy.js} +2 -2
  169. package/build/lib/useQuery.legacy.js.map +1 -0
  170. package/build/lib/{useQueryClient.mjs → useQueryClient.cjs} +9 -7
  171. package/build/lib/{useQueryClient.mjs.map → useQueryClient.cjs.map} +1 -1
  172. package/build/lib/useQueryClient.d.ts +1 -0
  173. package/build/lib/useQueryClient.d.ts.map +1 -0
  174. package/build/lib/useQueryClient.js +6 -9
  175. package/build/lib/useQueryClient.js.map +1 -1
  176. package/build/lib/useQueryClient.legacy.cjs +21 -0
  177. package/build/lib/useQueryClient.legacy.cjs.map +1 -0
  178. package/build/lib/{useQueryClient.esm.js → useQueryClient.legacy.js} +2 -2
  179. package/build/lib/useQueryClient.legacy.js.map +1 -0
  180. package/build/lib/{utils.mjs → utils.cjs} +16 -6
  181. package/build/lib/utils.cjs.map +1 -0
  182. package/build/lib/utils.d.ts +2 -0
  183. package/build/lib/utils.d.ts.map +1 -0
  184. package/build/lib/utils.js +8 -11
  185. package/build/lib/utils.js.map +1 -1
  186. package/build/lib/utils.legacy.cjs +60 -0
  187. package/build/lib/utils.legacy.cjs.map +1 -0
  188. package/build/lib/{utils.esm.js → utils.legacy.js} +5 -2
  189. package/build/lib/utils.legacy.js.map +1 -0
  190. package/build/lib/{vueQueryPlugin.esm.js → vueQueryPlugin.cjs} +16 -16
  191. package/build/lib/vueQueryPlugin.cjs.map +1 -0
  192. package/build/lib/vueQueryPlugin.d.ts +3 -2
  193. package/build/lib/vueQueryPlugin.d.ts.map +1 -0
  194. package/build/lib/vueQueryPlugin.js +13 -17
  195. package/build/lib/vueQueryPlugin.js.map +1 -1
  196. package/build/lib/vueQueryPlugin.legacy.cjs +73 -0
  197. package/build/lib/vueQueryPlugin.legacy.cjs.map +1 -0
  198. package/build/lib/{vueQueryPlugin.mjs → vueQueryPlugin.legacy.js} +5 -7
  199. package/build/lib/vueQueryPlugin.legacy.js.map +1 -0
  200. package/package.json +20 -15
  201. package/src/__mocks__/useBaseQuery.ts +8 -0
  202. package/src/__mocks__/useQueryClient.ts +10 -0
  203. package/src/__tests__/mutationCache.test.ts +40 -0
  204. package/src/__tests__/queryCache.test.ts +48 -0
  205. package/src/__tests__/queryClient.test.ts +365 -0
  206. package/src/__tests__/test-utils.ts +62 -0
  207. package/src/__tests__/useInfiniteQuery.test.ts +37 -0
  208. package/src/__tests__/useInfiniteQuery.types.test.tsx +102 -0
  209. package/src/__tests__/useIsFetching.test.ts +77 -0
  210. package/src/__tests__/useIsMutating.test.ts +123 -0
  211. package/src/__tests__/useMutation.test.ts +335 -0
  212. package/src/__tests__/useMutation.types.test.tsx +97 -0
  213. package/src/__tests__/useQueries.test.ts +256 -0
  214. package/src/__tests__/useQuery.test.ts +290 -0
  215. package/src/__tests__/useQuery.types.test.tsx +88 -0
  216. package/src/__tests__/useQueryClient.test.ts +51 -0
  217. package/src/__tests__/utils.test.ts +148 -0
  218. package/src/__tests__/vueQueryPlugin.test.ts +351 -0
  219. package/src/devtools/devtools.ts +249 -0
  220. package/src/devtools/utils.ts +96 -0
  221. package/src/index.ts +30 -0
  222. package/src/mutationCache.ts +25 -0
  223. package/src/queryCache.ts +21 -0
  224. package/src/queryClient.ts +278 -0
  225. package/src/types.ts +17 -0
  226. package/src/useBaseQuery.ts +152 -0
  227. package/src/useInfiniteQuery.ts +105 -0
  228. package/src/useIsFetching.ts +41 -0
  229. package/src/useMutation.ts +113 -0
  230. package/src/useMutationState.ts +81 -0
  231. package/src/useQueries.ts +228 -0
  232. package/src/useQuery.ts +125 -0
  233. package/src/useQueryClient.ts +23 -0
  234. package/src/utils.ts +71 -0
  235. package/src/vueQueryPlugin.ts +99 -0
  236. package/build/lib/devtools/devtools.esm.js.map +0 -1
  237. package/build/lib/devtools/devtools.mjs.map +0 -1
  238. package/build/lib/devtools/utils.esm.js.map +0 -1
  239. package/build/lib/index.esm.js +0 -14
  240. package/build/lib/index.esm.js.map +0 -1
  241. package/build/lib/index.mjs +0 -14
  242. package/build/lib/index.mjs.map +0 -1
  243. package/build/lib/mutationCache.esm.js.map +0 -1
  244. package/build/lib/mutationCache.mjs +0 -14
  245. package/build/lib/queryCache.esm.js.map +0 -1
  246. package/build/lib/queryCache.mjs +0 -14
  247. package/build/lib/queryClient.esm.js.map +0 -1
  248. package/build/lib/queryClient.mjs +0 -84
  249. package/build/lib/useBaseQuery.esm.js.map +0 -1
  250. package/build/lib/useBaseQuery.mjs +0 -67
  251. package/build/lib/useBaseQuery.mjs.map +0 -1
  252. package/build/lib/useInfiniteQuery.esm.js.map +0 -1
  253. package/build/lib/useIsFetching.esm.js.map +0 -1
  254. package/build/lib/useIsFetching.mjs +0 -24
  255. package/build/lib/useIsFetching.mjs.map +0 -1
  256. package/build/lib/useMutation.esm.js.map +0 -1
  257. package/build/lib/useMutation.mjs +0 -39
  258. package/build/lib/useMutation.mjs.map +0 -1
  259. package/build/lib/useMutationState.esm.js.map +0 -1
  260. package/build/lib/useMutationState.mjs +0 -33
  261. package/build/lib/useMutationState.mjs.map +0 -1
  262. package/build/lib/useQueries.esm.js +0 -46
  263. package/build/lib/useQueries.mjs +0 -46
  264. package/build/lib/useQueries.mjs.map +0 -1
  265. package/build/lib/useQuery.esm.js.map +0 -1
  266. package/build/lib/useQuery.mjs +0 -13
  267. package/build/lib/useQueryClient.esm.js.map +0 -1
  268. package/build/lib/utils.esm.js.map +0 -1
  269. package/build/lib/utils.mjs.map +0 -1
  270. package/build/lib/vueQueryPlugin.esm.js.map +0 -1
  271. package/build/lib/vueQueryPlugin.mjs.map +0 -1
  272. package/build/umd/index.development.js +0 -4199
  273. package/build/umd/index.development.js.map +0 -1
  274. package/build/umd/index.production.js +0 -2
  275. package/build/umd/index.production.js.map +0 -1
@@ -0,0 +1,228 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { isServer, QueriesObserver } from '@tanstack/query-core'
3
+ import type {
4
+ QueriesPlaceholderDataFunction,
5
+ QueryKey,
6
+ QueriesObserverOptions,
7
+ QueryFunction,
8
+ QueryObserverResult,
9
+ } from '@tanstack/query-core'
10
+ import type { Ref } from 'vue-demi'
11
+ import { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'
12
+
13
+ import { useQueryClient } from './useQueryClient'
14
+ import { cloneDeepUnref, noop } from './utils'
15
+ import type { UseQueryOptions } from './useQuery'
16
+ import type { QueryClient } from './queryClient'
17
+ import type { DistributiveOmit, MaybeRefDeep } from './types'
18
+
19
+ // This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.
20
+ // `placeholderData` function does not have a parameter
21
+ type UseQueryOptionsForUseQueries<
22
+ TQueryFnData = unknown,
23
+ TError = unknown,
24
+ TData = TQueryFnData,
25
+ TQueryKey extends QueryKey = QueryKey,
26
+ > = DistributiveOmit<
27
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
28
+ 'placeholderData'
29
+ > & {
30
+ placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>
31
+ }
32
+
33
+ // Avoid TS depth-limit error in case of large array literal
34
+ type MAXIMUM_DEPTH = 20
35
+
36
+ type GetOptions<T> =
37
+ // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
38
+ T extends {
39
+ queryFnData: infer TQueryFnData
40
+ error?: infer TError
41
+ data: infer TData
42
+ }
43
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
44
+ : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
45
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
46
+ : T extends { data: infer TData; error?: infer TError }
47
+ ? UseQueryOptionsForUseQueries<unknown, TError, TData>
48
+ : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
49
+ T extends [infer TQueryFnData, infer TError, infer TData]
50
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
51
+ : T extends [infer TQueryFnData, infer TError]
52
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
53
+ : T extends [infer TQueryFnData]
54
+ ? UseQueryOptionsForUseQueries<TQueryFnData>
55
+ : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
56
+ T extends {
57
+ queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
58
+ select: (data: any) => infer TData
59
+ }
60
+ ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>
61
+ : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }
62
+ ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>
63
+ : // Fallback
64
+ UseQueryOptionsForUseQueries
65
+
66
+ type GetResults<T> =
67
+ // Part 1: responsible for mapping explicit type parameter to function result, if object
68
+ T extends { queryFnData: any; error?: infer TError; data: infer TData }
69
+ ? QueryObserverResult<TData, TError>
70
+ : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
71
+ ? QueryObserverResult<TQueryFnData, TError>
72
+ : T extends { data: infer TData; error?: infer TError }
73
+ ? QueryObserverResult<TData, TError>
74
+ : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
75
+ T extends [any, infer TError, infer TData]
76
+ ? QueryObserverResult<TData, TError>
77
+ : T extends [infer TQueryFnData, infer TError]
78
+ ? QueryObserverResult<TQueryFnData, TError>
79
+ : T extends [infer TQueryFnData]
80
+ ? QueryObserverResult<TQueryFnData>
81
+ : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
82
+ T extends {
83
+ queryFn?: QueryFunction<unknown, any>
84
+ select: (data: any) => infer TData
85
+ }
86
+ ? QueryObserverResult<TData>
87
+ : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }
88
+ ? QueryObserverResult<TQueryFnData>
89
+ : // Fallback
90
+ QueryObserverResult
91
+
92
+ /**
93
+ * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
94
+ */
95
+ export type UseQueriesOptions<
96
+ T extends any[],
97
+ Result extends any[] = [],
98
+ Depth extends ReadonlyArray<number> = [],
99
+ > = Depth['length'] extends MAXIMUM_DEPTH
100
+ ? UseQueryOptionsForUseQueries[]
101
+ : T extends []
102
+ ? []
103
+ : T extends [infer Head]
104
+ ? [...Result, GetOptions<Head>]
105
+ : T extends [infer Head, ...infer Tail]
106
+ ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>
107
+ : unknown[] extends T
108
+ ? T
109
+ : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
110
+ // use this to infer the param types in the case of Array.map() argument
111
+ T extends UseQueryOptionsForUseQueries<
112
+ infer TQueryFnData,
113
+ infer TError,
114
+ infer TData,
115
+ infer TQueryKey
116
+ >[]
117
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]
118
+ : // Fallback
119
+ UseQueryOptionsForUseQueries[]
120
+
121
+ /**
122
+ * UseQueriesResults reducer recursively maps type param to results
123
+ */
124
+ export type UseQueriesResults<
125
+ T extends any[],
126
+ Result extends any[] = [],
127
+ Depth extends ReadonlyArray<number> = [],
128
+ > = Depth['length'] extends MAXIMUM_DEPTH
129
+ ? QueryObserverResult[]
130
+ : T extends []
131
+ ? []
132
+ : T extends [infer Head]
133
+ ? [...Result, GetResults<Head>]
134
+ : T extends [infer Head, ...infer Tail]
135
+ ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>
136
+ : T extends UseQueryOptionsForUseQueries<
137
+ infer TQueryFnData,
138
+ infer TError,
139
+ infer TData,
140
+ any
141
+ >[]
142
+ ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
143
+ QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]
144
+ : // Fallback
145
+ QueryObserverResult[]
146
+
147
+ type UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]
148
+
149
+ export function useQueries<
150
+ T extends any[],
151
+ TCombinedResult = UseQueriesResults<T>,
152
+ >(
153
+ {
154
+ queries,
155
+ ...options
156
+ }: {
157
+ queries: MaybeRefDeep<UseQueriesOptionsArg<T>>
158
+ combine?: (result: UseQueriesResults<T>) => TCombinedResult
159
+ },
160
+ queryClient?: QueryClient,
161
+ ): Readonly<Ref<TCombinedResult>> {
162
+ const client = queryClient || useQueryClient()
163
+
164
+ const defaultedQueries = computed(() =>
165
+ cloneDeepUnref(queries).map((queryOptions) => {
166
+ const defaulted = client.defaultQueryOptions(queryOptions)
167
+ defaulted._optimisticResults = client.isRestoring.value
168
+ ? 'isRestoring'
169
+ : 'optimistic'
170
+
171
+ return defaulted
172
+ }),
173
+ )
174
+
175
+ const observer = new QueriesObserver<TCombinedResult>(
176
+ client,
177
+ defaultedQueries.value,
178
+ options as QueriesObserverOptions<TCombinedResult>,
179
+ )
180
+ const [, getCombinedResult] = observer.getOptimisticResult(
181
+ defaultedQueries.value,
182
+ )
183
+ const state = ref(getCombinedResult()) as Ref<TCombinedResult>
184
+
185
+ const unsubscribe = ref(noop)
186
+
187
+ watch(
188
+ client.isRestoring,
189
+ (isRestoring) => {
190
+ if (!isRestoring) {
191
+ unsubscribe.value()
192
+ // Nuxt2 memory leak fix - do not subscribe on server
193
+ if (!isServer) {
194
+ unsubscribe.value = observer.subscribe(() => {
195
+ const [, getCombinedResultRestoring] = observer.getOptimisticResult(
196
+ defaultedQueries.value,
197
+ )
198
+ state.value = getCombinedResultRestoring()
199
+ })
200
+ }
201
+ // Subscription would not fire for persisted results
202
+ const [, getCombinedResultPersisted] = observer.getOptimisticResult(
203
+ defaultedQueries.value,
204
+ )
205
+ state.value = getCombinedResultPersisted()
206
+ }
207
+ },
208
+ { immediate: true },
209
+ )
210
+
211
+ watch(
212
+ [defaultedQueries],
213
+ () => {
214
+ observer.setQueries(
215
+ defaultedQueries.value,
216
+ options as QueriesObserverOptions<TCombinedResult>,
217
+ )
218
+ state.value = observer.getCurrentResult()
219
+ },
220
+ { deep: true },
221
+ )
222
+
223
+ onScopeDispose(() => {
224
+ unsubscribe.value()
225
+ })
226
+
227
+ return readonly(state) as Readonly<Ref<TCombinedResult>>
228
+ }
@@ -0,0 +1,125 @@
1
+ import type { ToRefs, UnwrapRef } from 'vue-demi'
2
+ import { QueryObserver } from '@tanstack/query-core'
3
+ import type {
4
+ QueryKey,
5
+ QueryObserverResult,
6
+ DefinedQueryObserverResult,
7
+ WithRequired,
8
+ QueryObserverOptions,
9
+ DefaultError,
10
+ } from '@tanstack/query-core'
11
+ import { useBaseQuery } from './useBaseQuery'
12
+ import type { UseBaseQueryReturnType } from './useBaseQuery'
13
+ import type { DistributiveOmit, MaybeRefDeep } from './types'
14
+ import type { QueryClient } from './queryClient'
15
+
16
+ export type UseQueryOptions<
17
+ TQueryFnData = unknown,
18
+ TError = DefaultError,
19
+ TData = TQueryFnData,
20
+ TQueryData = TQueryFnData,
21
+ TQueryKey extends QueryKey = QueryKey,
22
+ > = {
23
+ [Property in keyof QueryObserverOptions<
24
+ TQueryFnData,
25
+ TError,
26
+ TData,
27
+ TQueryData,
28
+ TQueryKey
29
+ >]: Property extends 'queryFn'
30
+ ? QueryObserverOptions<
31
+ TQueryFnData,
32
+ TError,
33
+ TData,
34
+ TQueryData,
35
+ UnwrapRef<TQueryKey>
36
+ >[Property]
37
+ : MaybeRefDeep<
38
+ WithRequired<
39
+ QueryObserverOptions<
40
+ TQueryFnData,
41
+ TError,
42
+ TData,
43
+ TQueryData,
44
+ TQueryKey
45
+ >,
46
+ 'queryKey'
47
+ >[Property]
48
+ >
49
+ }
50
+
51
+ export type UseQueryReturnType<TData, TError> = DistributiveOmit<
52
+ UseBaseQueryReturnType<TData, TError>,
53
+ 'refetch'
54
+ > & {
55
+ refetch: QueryObserverResult<TData, TError>['refetch']
56
+ }
57
+
58
+ export type UseQueryDefinedReturnType<TData, TError> = DistributiveOmit<
59
+ ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,
60
+ 'refetch'
61
+ > & {
62
+ suspense: () => Promise<QueryObserverResult<TData, TError>>
63
+ refetch: QueryObserverResult<TData, TError>['refetch']
64
+ }
65
+
66
+ export function useQuery<
67
+ TQueryFnData = unknown,
68
+ TError = DefaultError,
69
+ TData = TQueryFnData,
70
+ TQueryKey extends QueryKey = QueryKey,
71
+ >(
72
+ options: UseQueryOptions<
73
+ TQueryFnData,
74
+ TError,
75
+ TData,
76
+ TQueryFnData,
77
+ TQueryKey
78
+ > & {
79
+ initialData?: undefined
80
+ },
81
+ queryClient?: QueryClient,
82
+ ): UseQueryReturnType<TData, TError>
83
+
84
+ export function useQuery<
85
+ TQueryFnData = unknown,
86
+ TError = DefaultError,
87
+ TData = TQueryFnData,
88
+ TQueryKey extends QueryKey = QueryKey,
89
+ >(
90
+ options: UseQueryOptions<
91
+ TQueryFnData,
92
+ TError,
93
+ TData,
94
+ TQueryFnData,
95
+ TQueryKey
96
+ > & {
97
+ initialData: TQueryFnData | (() => TQueryFnData)
98
+ },
99
+ queryClient?: QueryClient,
100
+ ): UseQueryDefinedReturnType<TData, TError>
101
+
102
+ export function useQuery<
103
+ TQueryFnData,
104
+ TError = DefaultError,
105
+ TData = TQueryFnData,
106
+ TQueryKey extends QueryKey = QueryKey,
107
+ >(
108
+ options: UseQueryOptions<
109
+ TQueryFnData,
110
+ TError,
111
+ TData,
112
+ TQueryFnData,
113
+ TQueryKey
114
+ >,
115
+ queryClient?: QueryClient,
116
+ ):
117
+ | UseQueryReturnType<TData, TError>
118
+ | UseQueryDefinedReturnType<TData, TError> {
119
+ const result = useBaseQuery(QueryObserver, options, queryClient)
120
+
121
+ return {
122
+ ...result,
123
+ refetch: result.refetch.value,
124
+ }
125
+ }
@@ -0,0 +1,23 @@
1
+ import { getCurrentInstance, inject } from 'vue-demi'
2
+
3
+ import type { QueryClient } from './queryClient'
4
+ import { getClientKey } from './utils'
5
+
6
+ export function useQueryClient(id = ''): QueryClient {
7
+ const vm = getCurrentInstance()?.proxy
8
+
9
+ if (!vm) {
10
+ throw new Error('vue-query hooks can only be used inside setup() function.')
11
+ }
12
+
13
+ const key = getClientKey(id)
14
+ const queryClient = inject<QueryClient>(key)
15
+
16
+ if (!queryClient) {
17
+ throw new Error(
18
+ "No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.",
19
+ )
20
+ }
21
+
22
+ return queryClient
23
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,71 @@
1
+ import { isRef, unref } from 'vue-demi'
2
+ import type { MaybeRefDeep } from './types'
3
+
4
+ export const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'
5
+
6
+ export function getClientKey(key?: string) {
7
+ const suffix = key ? `:${key}` : ''
8
+ return `${VUE_QUERY_CLIENT}${suffix}`
9
+ }
10
+
11
+ export function updateState(
12
+ state: Record<string, unknown>,
13
+ update: Record<string, any>,
14
+ ): void {
15
+ Object.keys(state).forEach((key) => {
16
+ state[key] = update[key]
17
+ })
18
+ }
19
+
20
+ export function cloneDeep<T>(
21
+ value: MaybeRefDeep<T>,
22
+ customizer?: (val: MaybeRefDeep<T>) => T | undefined,
23
+ ): T {
24
+ if (customizer) {
25
+ const result = customizer(value)
26
+ // If it's a ref of undefined, return undefined
27
+ if (result === undefined && isRef(value)) {
28
+ return result as T
29
+ }
30
+ if (result !== undefined) {
31
+ return result
32
+ }
33
+ }
34
+
35
+ if (Array.isArray(value)) {
36
+ return value.map((val) => cloneDeep(val, customizer)) as unknown as T
37
+ }
38
+
39
+ if (typeof value === 'object' && isPlainObject(value)) {
40
+ const entries = Object.entries(value).map(([key, val]) => [
41
+ key,
42
+ cloneDeep(val, customizer),
43
+ ])
44
+ return Object.fromEntries(entries)
45
+ }
46
+
47
+ return value as T
48
+ }
49
+
50
+ export function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T {
51
+ return cloneDeep(obj, (val) => {
52
+ if (isRef(val)) {
53
+ return cloneDeepUnref(unref(val))
54
+ }
55
+
56
+ return undefined
57
+ })
58
+ }
59
+
60
+ function isPlainObject(value: unknown): value is Object {
61
+ if (Object.prototype.toString.call(value) !== '[object Object]') {
62
+ return false
63
+ }
64
+
65
+ const prototype = Object.getPrototypeOf(value)
66
+ return prototype === null || prototype === Object.prototype
67
+ }
68
+
69
+ export function noop(): void {
70
+ return undefined
71
+ }
@@ -0,0 +1,99 @@
1
+ import { isVue2 } from 'vue-demi'
2
+ import { isServer } from '@tanstack/query-core'
3
+ import type { QueryClientConfig } from '@tanstack/query-core'
4
+
5
+ import { QueryClient } from './queryClient'
6
+ import { getClientKey, noop } from './utils'
7
+ import { setupDevtools } from './devtools/devtools'
8
+ import type { MaybeRefDeep } from './types'
9
+
10
+ type ClientPersister = (client: QueryClient) => [() => void, Promise<void>]
11
+
12
+ interface CommonOptions {
13
+ queryClientKey?: string
14
+ clientPersister?: ClientPersister
15
+ }
16
+
17
+ interface ConfigOptions extends CommonOptions {
18
+ queryClientConfig?: MaybeRefDeep<QueryClientConfig>
19
+ }
20
+
21
+ interface ClientOptions extends CommonOptions {
22
+ queryClient?: QueryClient
23
+ }
24
+
25
+ export type VueQueryPluginOptions = ConfigOptions | ClientOptions
26
+
27
+ export const VueQueryPlugin = {
28
+ install: (app: any, options: VueQueryPluginOptions = {}) => {
29
+ const clientKey = getClientKey(options.queryClientKey)
30
+ let client: QueryClient
31
+
32
+ if ('queryClient' in options && options.queryClient) {
33
+ client = options.queryClient
34
+ } else {
35
+ const clientConfig =
36
+ 'queryClientConfig' in options ? options.queryClientConfig : undefined
37
+ client = new QueryClient(clientConfig)
38
+ }
39
+
40
+ if (!isServer) {
41
+ client.mount()
42
+ }
43
+
44
+ let persisterUnmount = noop
45
+
46
+ if (options.clientPersister) {
47
+ client.isRestoring.value = true
48
+ const [unmount, promise] = options.clientPersister(client)
49
+ persisterUnmount = unmount
50
+ promise.then(() => {
51
+ client.isRestoring.value = false
52
+ })
53
+ }
54
+
55
+ const cleanup = () => {
56
+ client.unmount()
57
+ persisterUnmount()
58
+ }
59
+
60
+ if (app.onUnmount) {
61
+ app.onUnmount(cleanup)
62
+ } else {
63
+ const originalUnmount = app.unmount
64
+ app.unmount = function vueQueryUnmount() {
65
+ cleanup()
66
+ originalUnmount()
67
+ }
68
+ }
69
+
70
+ if (isVue2) {
71
+ app.mixin({
72
+ beforeCreate() {
73
+ // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30
74
+ if (!this._provided) {
75
+ const provideCache = {}
76
+ Object.defineProperty(this, '_provided', {
77
+ get: () => provideCache,
78
+ set: (v) => Object.assign(provideCache, v),
79
+ })
80
+ }
81
+
82
+ this._provided[clientKey] = client
83
+
84
+ if (process.env.NODE_ENV === 'development') {
85
+ if (this === this.$root) {
86
+ setupDevtools(this, client)
87
+ }
88
+ }
89
+ },
90
+ })
91
+ } else {
92
+ app.provide(clientKey, client)
93
+
94
+ if (process.env.NODE_ENV === 'development') {
95
+ setupDevtools(app, client)
96
+ }
97
+ }
98
+ },
99
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"devtools.esm.js","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/v4',\n logo: 'https://vue-query.vercel.app/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n },\n },\n (api) => {\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'cloud_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n event &&\n ['queryAdded', 'queryRemoved', 'queryUpdated'].includes(event.type)\n ) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","api","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","data","on","getInspectorTree","payload","inspectorId","queries","getAll","getSettings","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":";;;;AAYA,MAAMA,QAAQ,GAAG,WAAW,CAAA;AAC5B,MAAMC,UAAU,GAAG,WAAW,CAAA;AAEvB,SAASC,aAAa,CAACC,GAAQ,EAAEC,WAAwB,EAAE;AAChEC,EAAAA,mBAAmB,CACjB;AACEC,IAAAA,EAAE,EAAEN,QAAQ;AACZO,IAAAA,KAAK,EAAEN,UAAU;AACjBO,IAAAA,WAAW,EAAE,WAAW;AACxBC,IAAAA,QAAQ,EAAE,+BAA+B;AACzCC,IAAAA,IAAI,EAAE,4CAA4C;IAClDP,GAAG;AACHQ,IAAAA,QAAQ,EAAE;AACRC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,SAAS,EAAE,cAAc;AACzBP,QAAAA,KAAK,EAAE,oBAAoB;AAC3BQ,QAAAA,OAAO,EAAE,CACP;AACER,UAAAA,KAAK,EAAE,KAAK;AACZS,UAAAA,KAAK,EAAE,CAAA;AACT,SAAC,EACD;AACET,UAAAA,KAAK,EAAE,MAAM;AACbS,UAAAA,KAAK,EAAE,CAAC,CAAA;AACV,SAAC,CACF;AACDC,QAAAA,YAAY,EAAE,CAAA;OACf;AACDC,MAAAA,MAAM,EAAE;AACNL,QAAAA,IAAI,EAAE,QAAQ;AACdN,QAAAA,KAAK,EAAE,eAAe;QACtBQ,OAAO,EAAEI,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,CAACC,GAAG,CAAEC,GAAG,KAAM;AAC1ChB,UAAAA,KAAK,EAAEgB,GAAG;AACVP,UAAAA,KAAK,EAAEO,GAAAA;AACT,SAAC,CAAC,CAAC;QACHN,YAAY,EAAEE,MAAM,CAACC,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC,CAAA;AACtC,OAAA;AACF,KAAA;GACD,EACAG,GAAG,IAAK;AACP,IAAA,MAAMC,UAAU,GAAGrB,WAAW,CAACsB,aAAa,EAAE,CAAA;IAE9CF,GAAG,CAACG,YAAY,CAAC;AACfrB,MAAAA,EAAE,EAAEN,QAAQ;AACZO,MAAAA,KAAK,EAAEN,UAAU;AACjB2B,MAAAA,IAAI,EAAE,KAAK;AACXC,MAAAA,WAAW,EAAE,CACX;AACED,QAAAA,IAAI,EAAE,gBAAgB;AACtBE,QAAAA,OAAO,EAAE,SAAS;QAClBC,MAAM,EAAGC,SAAiB,IAAK;AAAA,UAAA,IAAA,eAAA,CAAA;UAC7B,CAAAP,eAAAA,GAAAA,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAzB,eAA2BE,CAAAA,KAAK,EAAE,CAAA;AACpC,SAAA;AACF,OAAC,EACD;AACEN,QAAAA,IAAI,EAAE,OAAO;AACbE,QAAAA,OAAO,EAAE,YAAY;QACrBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMG,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAU,CAAA;AAChD5B,UAAAA,WAAW,CAACgC,iBAAiB,CAACD,KAAK,CAAC,CAAA;AACtC,SAAA;AACF,OAAC,EACD;AACEP,QAAAA,IAAI,EAAE,yBAAyB;AAC/BE,QAAAA,OAAO,EAAE,OAAO;QAChBC,MAAM,EAAGC,SAAiB,IAAK;AAAA,UAAA,IAAA,gBAAA,CAAA;UAC7B,CAAAP,gBAAAA,GAAAA,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAzB,gBAA2BK,CAAAA,KAAK,EAAE,CAAA;AACpC,SAAA;AACF,OAAC,EACD;AACET,QAAAA,IAAI,EAAE,QAAQ;AACdE,QAAAA,OAAO,EAAE,QAAQ;QACjBC,MAAM,EAAGC,SAAiB,IAAK;AAC7B,UAAA,MAAMG,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACD,SAAS,CAAU,CAAA;AAChDP,UAAAA,UAAU,CAACa,MAAM,CAACH,KAAK,CAAC,CAAA;AAC1B,SAAA;OACD,CAAA;AAEL,KAAC,CAAC,CAAA;IAEFX,GAAG,CAACe,gBAAgB,CAAC;AACnBjC,MAAAA,EAAE,EAAEN,QAAQ;AACZO,MAAAA,KAAK,EAAEN,UAAU;AACjBuC,MAAAA,KAAK,EAAE,QAAA;AACT,KAAC,CAAC,CAAA;AAEFf,IAAAA,UAAU,CAACgB,SAAS,CAAEC,KAAK,IAAK;AAC9BlB,MAAAA,GAAG,CAACmB,iBAAiB,CAAC3C,QAAQ,CAAC,CAAA;AAC/BwB,MAAAA,GAAG,CAACoB,kBAAkB,CAAC5C,QAAQ,CAAC,CAAA;AAEhC,MAAA;AACE;AACA0C,MAAAA,KAAK,IACL,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC,CAACG,QAAQ,CAACH,KAAK,CAAC7B,IAAI,CAAC,EACnE;QACAW,GAAG,CAACsB,gBAAgB,CAAC;AACnBC,UAAAA,OAAO,EAAE/C,QAAQ;AACjB0C,UAAAA,KAAK,EAAE;YACLM,KAAK,EAAEN,KAAK,CAAC7B,IAAI;AACjBoC,YAAAA,QAAQ,EAAEP,KAAK,CAACP,KAAK,CAACH,SAAS;AAC/BkB,YAAAA,IAAI,EAAE1B,GAAG,CAAC2B,GAAG,EAAE;AACfC,YAAAA,IAAI,EAAE;AACJpB,cAAAA,SAAS,EAAEU,KAAK,CAACP,KAAK,CAACH,SAAS;cAChC,GAAGU,KAAAA;AACL,aAAA;AACF,WAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;AAEFlB,IAAAA,GAAG,CAAC6B,EAAE,CAACC,gBAAgB,CAAEC,OAAO,IAAK;AACnC,MAAA,IAAIA,OAAO,CAACC,WAAW,KAAKxD,QAAQ,EAAE;AACpC,QAAA,MAAMyD,OAAO,GAAGhC,UAAU,CAACiC,MAAM,EAAE,CAAA;AACnC,QAAA,MAAM/C,QAAQ,GAAGa,GAAG,CAACmC,WAAW,EAAE,CAAA;AAElC,QAAA,MAAMC,QAAQ,GAAGL,OAAO,CAACM,MAAM,GAC3BJ,OAAO,CAACI,MAAM,CACXC,IAAI,IAAKC,QAAQ,CAACD,IAAI,CAAC9B,SAAS,EAAEuB,OAAO,CAACM,MAAM,CAAC,CAACG,MAAM,CAC1D,GACD,CAAC,GAAGP,OAAO,CAAC,CAAA;QAEhB,MAAMQ,MAAM,GAAGL,QAAQ,CAACM,IAAI,CAC1B,CAACC,CAAC,EAAEC,CAAC,KAAK/C,OAAO,CAACV,QAAQ,CAACO,MAAM,CAAC,CAAEiD,CAAC,EAAEC,CAAC,CAAC,GAAGzD,QAAQ,CAACC,QAAQ,CAC9D,CAAA;AAED,QAAA,MAAMyD,KAA4B,GAAGJ,MAAM,CAAC3C,GAAG,CAAEa,KAAK,IAAK;AACzD,UAAA,MAAMmC,UAAU,GAAGC,kBAAkB,CAACpC,KAAK,CAAC,CAAA;UAE5C,OAAO;YACL7B,EAAE,EAAE6B,KAAK,CAACH,SAAS;YACnBzB,KAAK,EAAE4B,KAAK,CAACH,SAAS;AACtBwC,YAAAA,IAAI,EAAE,CACJ;cACEjE,KAAK,EAAG,GAAE+D,UAAW,CAAA,EAAA,EAAInC,KAAK,CAACsC,iBAAiB,EAAG,CAAE,CAAA,CAAA;AACrDC,cAAAA,SAAS,EAAEC,gBAAgB,CAACxC,KAAK,CAAC;cAClCyC,eAAe,EAAEC,gBAAgB,CAAC1C,KAAK,CAAA;aACxC,CAAA;WAEJ,CAAA;AACH,SAAC,CAAC,CAAA;QACFoB,OAAO,CAACuB,SAAS,GAAGT,KAAK,CAAA;AAC3B,OAAA;AACF,KAAC,CAAC,CAAA;AAEF7C,IAAAA,GAAG,CAAC6B,EAAE,CAAC0B,iBAAiB,CAAExB,OAAO,IAAK;AACpC,MAAA,IAAIA,OAAO,CAACC,WAAW,KAAKxD,QAAQ,EAAE;QACpC,MAAMmC,KAAK,GAAGV,UAAU,CAACQ,GAAG,CAACsB,OAAO,CAACyB,MAAM,CAAC,CAAA;QAE5C,IAAI,CAAC7C,KAAK,EAAE;AACV,UAAA,OAAA;AACF,SAAA;QAEAoB,OAAO,CAAC0B,KAAK,GAAG;AACd,UAAA,gBAAgB,EAAE,CAChB;AACE1D,YAAAA,GAAG,EAAE,WAAW;YAChBP,KAAK,EAAEmB,KAAK,CAACH,SAAAA;AACf,WAAC,EACD;AACET,YAAAA,GAAG,EAAE,cAAc;YACnBP,KAAK,EAAEuD,kBAAkB,CAACpC,KAAK,CAAA;AACjC,WAAC,EACD;AACEZ,YAAAA,GAAG,EAAE,WAAW;YAChBP,KAAK,EAAEmB,KAAK,CAACsC,iBAAiB,EAAA;AAChC,WAAC,EACD;AACElD,YAAAA,GAAG,EAAE,cAAc;YACnBP,KAAK,EAAE,IAAIkE,IAAI,CAAC/C,KAAK,CAAC8C,KAAK,CAACE,aAAa,CAAC,CAACC,kBAAkB,EAAA;AAC/D,WAAC,CACF;AACD,UAAA,eAAe,EAAE,CACf;AACE7D,YAAAA,GAAG,EAAE,MAAM;AACXP,YAAAA,KAAK,EAAEmB,KAAK,CAAC8C,KAAK,CAAC7B,IAAAA;AACrB,WAAC,CACF;AACD,UAAA,gBAAgB,EAAE,CAChB;AACE7B,YAAAA,GAAG,EAAE,OAAO;AACZP,YAAAA,KAAK,EAAEmB,KAAAA;WACR,CAAA;SAEJ,CAAA;AACH,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,CACF,CAAA;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"devtools.mjs","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/v4',\n logo: 'https://vue-query.vercel.app/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n },\n },\n (api) => {\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'cloud_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n event &&\n ['queryAdded', 'queryRemoved', 'queryUpdated'].includes(event.type)\n ) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","api","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","data","on","getInspectorTree","payload","inspectorId","queries","getAll","getSettings","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.esm.js","sources":["../../../src/devtools/utils.ts"],"sourcesContent":["import type { Query } from '@tanstack/query-core'\n\ntype SortFn = (a: Query, b: Query) => number\n\n// eslint-disable-next-line no-shadow\nenum QueryState {\n Fetching = 0,\n Fresh,\n Stale,\n Inactive,\n Paused,\n}\n\nexport function getQueryState(query: Query): QueryState {\n if (query.state.fetchStatus === 'fetching') {\n return QueryState.Fetching\n }\n if (query.state.fetchStatus === 'paused') {\n return QueryState.Paused\n }\n if (!query.getObserversCount()) {\n return QueryState.Inactive\n }\n if (query.isStale()) {\n return QueryState.Stale\n }\n\n return QueryState.Fresh\n}\n\nexport function getQueryStateLabel(query: Query): string {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Fetching) {\n return 'fetching'\n }\n if (queryState === QueryState.Paused) {\n return 'paused'\n }\n if (queryState === QueryState.Stale) {\n return 'stale'\n }\n if (queryState === QueryState.Inactive) {\n return 'inactive'\n }\n\n return 'fresh'\n}\n\nexport function getQueryStatusFg(query: Query): number {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Stale) {\n return 0x000000\n }\n\n return 0xffffff\n}\n\nexport function getQueryStatusBg(query: Query): number {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Fetching) {\n return 0x006bff\n }\n if (queryState === QueryState.Paused) {\n return 0x8c49eb\n }\n if (queryState === QueryState.Stale) {\n return 0xffb200\n }\n if (queryState === QueryState.Inactive) {\n return 0x3f4e60\n }\n\n return 0x008327\n}\n\nconst queryHashSort: SortFn = (a, b) => a.queryHash.localeCompare(b.queryHash)\n\nconst dateSort: SortFn = (a, b) =>\n a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1\n\nconst statusAndDateSort: SortFn = (a, b) => {\n if (getQueryState(a) === getQueryState(b)) {\n return dateSort(a, b)\n }\n\n return getQueryState(a) > getQueryState(b) ? 1 : -1\n}\n\nexport const sortFns: Record<string, SortFn> = {\n 'Status > Last Updated': statusAndDateSort,\n 'Query Hash': queryHashSort,\n 'Last Updated': dateSort,\n}\n"],"names":["QueryState","getQueryState","query","state","fetchStatus","Fetching","Paused","getObserversCount","Inactive","isStale","Stale","Fresh","getQueryStateLabel","queryState","getQueryStatusFg","getQueryStatusBg","queryHashSort","a","b","queryHash","localeCompare","dateSort","dataUpdatedAt","statusAndDateSort","sortFns"],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export * from '@tanstack/query-core';
2
- export { useQueryClient } from './useQueryClient.esm.js';
3
- export { VueQueryPlugin } from './vueQueryPlugin.esm.js';
4
- export { QueryClient } from './queryClient.esm.js';
5
- export { QueryCache } from './queryCache.esm.js';
6
- export { MutationCache } from './mutationCache.esm.js';
7
- export { useQuery } from './useQuery.esm.js';
8
- export { useQueries } from './useQueries.esm.js';
9
- export { useInfiniteQuery } from './useInfiniteQuery.esm.js';
10
- export { useMutation } from './useMutation.esm.js';
11
- export { useIsFetching } from './useIsFetching.esm.js';
12
- export { useIsMutating, useMutationState } from './useMutationState.esm.js';
13
- export { VUE_QUERY_CLIENT } from './utils.esm.js';
14
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,14 +0,0 @@
1
- export * from '@tanstack/query-core';
2
- export { useQueryClient } from './useQueryClient.mjs';
3
- export { VueQueryPlugin } from './vueQueryPlugin.mjs';
4
- export { QueryClient } from './queryClient.mjs';
5
- export { QueryCache } from './queryCache.mjs';
6
- export { MutationCache } from './mutationCache.mjs';
7
- export { useQuery } from './useQuery.mjs';
8
- export { useQueries } from './useQueries.mjs';
9
- export { useInfiniteQuery } from './useInfiniteQuery.mjs';
10
- export { useMutation } from './useMutation.mjs';
11
- export { useIsFetching } from './useIsFetching.mjs';
12
- export { useIsMutating, useMutationState } from './useMutationState.mjs';
13
- export { VUE_QUERY_CLIENT } from './utils.mjs';
14
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutationCache.esm.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import { MutationCache as MC } from '@tanstack/query-core'\nimport type {\n Mutation,\n MutationFilters,\n DefaultError,\n} from '@tanstack/query-core'\nimport type { MaybeRefDeep } from './types'\nimport { cloneDeepUnref } from './utils'\n\nexport class MutationCache extends MC {\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MaybeRefDeep<MutationFilters>,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n return super.find(cloneDeepUnref(filters))\n }\n\n findAll(filters: MaybeRefDeep<MutationFilters> = {}): Mutation[] {\n return super.findAll(cloneDeepUnref(filters))\n }\n}\n"],"names":["MutationCache","MC","find","filters","cloneDeepUnref","findAll"],"mappings":";;;AASO,MAAMA,aAAa,SAASC,eAAE,CAAC;EACpCC,IAAI,CAMFC,OAAsC,EACqB;IAC3D,OAAO,KAAK,CAACD,IAAI,CAACE,cAAc,CAACD,OAAO,CAAC,CAAC,CAAA;AAC5C,GAAA;AAEAE,EAAAA,OAAO,CAACF,OAAsC,GAAG,EAAE,EAAc;IAC/D,OAAO,KAAK,CAACE,OAAO,CAACD,cAAc,CAACD,OAAO,CAAC,CAAC,CAAA;AAC/C,GAAA;AACF;;;;"}