@tanstack/vue-query 5.0.0-alpha.8 → 5.0.0-alpha.81

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 (271) 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} +21 -18
  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 +20 -23
  43. package/build/lib/devtools/devtools.js.map +1 -1
  44. package/build/lib/devtools/devtools.legacy.cjs +199 -0
  45. package/build/lib/devtools/devtools.legacy.cjs.map +1 -0
  46. package/build/lib/devtools/{devtools.esm.js → devtools.legacy.js} +4 -3
  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.esm.js → useBaseQuery.cjs} +23 -21
  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 +20 -22
  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.mjs → useBaseQuery.legacy.js} +9 -9
  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 +26 -0
  121. package/build/lib/{useIsFetching.mjs.map → useIsFetching.cjs.map} +1 -1
  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 +9 -11
  125. package/build/lib/useIsFetching.js.map +1 -1
  126. package/build/lib/useIsFetching.legacy.cjs +26 -0
  127. package/build/lib/useIsFetching.legacy.cjs.map +1 -0
  128. package/build/lib/{useIsFetching.mjs → useIsFetching.legacy.js} +3 -3
  129. package/build/lib/useIsFetching.legacy.js.map +1 -0
  130. package/build/lib/useMutation.cjs +41 -0
  131. package/build/lib/{useMutation.mjs.map → useMutation.cjs.map} +1 -1
  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 +14 -16
  135. package/build/lib/useMutation.js.map +1 -1
  136. package/build/lib/useMutation.legacy.cjs +41 -0
  137. package/build/lib/useMutation.legacy.cjs.map +1 -0
  138. package/build/lib/{useMutation.esm.js → useMutation.legacy.js} +3 -3
  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.cjs.map +1 -0
  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 +39 -26
  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} +12 -6
  181. package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
  182. package/build/lib/utils.d.ts +1 -0
  183. package/build/lib/utils.d.ts.map +1 -0
  184. package/build/lib/utils.js +5 -11
  185. package/build/lib/utils.js.map +1 -1
  186. package/build/lib/utils.legacy.cjs +56 -0
  187. package/build/lib/utils.legacy.cjs.map +1 -0
  188. package/build/lib/{utils.esm.js → utils.legacy.js} +1 -1
  189. package/build/lib/utils.legacy.js.map +1 -0
  190. package/build/lib/{vueQueryPlugin.esm.js → vueQueryPlugin.cjs} +15 -13
  191. package/build/lib/{vueQueryPlugin.mjs.map → vueQueryPlugin.cjs.map} +1 -1
  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 +12 -14
  195. package/build/lib/vueQueryPlugin.js.map +1 -1
  196. package/build/lib/vueQueryPlugin.legacy.cjs +75 -0
  197. package/build/lib/vueQueryPlugin.legacy.cjs.map +1 -0
  198. package/build/lib/{vueQueryPlugin.mjs → vueQueryPlugin.legacy.js} +4 -4
  199. package/build/lib/vueQueryPlugin.legacy.js.map +1 -0
  200. package/package.json +29 -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 +367 -0
  219. package/src/devtools/devtools.ts +255 -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 +151 -0
  227. package/src/useInfiniteQuery.ts +105 -0
  228. package/src/useIsFetching.ts +37 -0
  229. package/src/useMutation.ts +109 -0
  230. package/src/useMutationState.ts +81 -0
  231. package/src/useQueries.ts +230 -0
  232. package/src/useQuery.ts +125 -0
  233. package/src/useQueryClient.ts +23 -0
  234. package/src/utils.ts +67 -0
  235. package/src/vueQueryPlugin.ts +101 -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.map +0 -1
  251. package/build/lib/useInfiniteQuery.esm.js.map +0 -1
  252. package/build/lib/useIsFetching.esm.js +0 -24
  253. package/build/lib/useIsFetching.esm.js.map +0 -1
  254. package/build/lib/useMutation.esm.js.map +0 -1
  255. package/build/lib/useMutation.mjs +0 -39
  256. package/build/lib/useMutationState.esm.js.map +0 -1
  257. package/build/lib/useMutationState.mjs +0 -33
  258. package/build/lib/useMutationState.mjs.map +0 -1
  259. package/build/lib/useQueries.esm.js +0 -46
  260. package/build/lib/useQueries.esm.js.map +0 -1
  261. package/build/lib/useQueries.mjs +0 -46
  262. package/build/lib/useQueries.mjs.map +0 -1
  263. package/build/lib/useQuery.esm.js.map +0 -1
  264. package/build/lib/useQuery.mjs +0 -13
  265. package/build/lib/useQueryClient.esm.js.map +0 -1
  266. package/build/lib/utils.esm.js.map +0 -1
  267. package/build/lib/vueQueryPlugin.esm.js.map +0 -1
  268. package/build/umd/index.development.js +0 -4238
  269. package/build/umd/index.development.js.map +0 -1
  270. package/build/umd/index.production.js +0 -2
  271. package/build/umd/index.production.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/vue-query",
3
- "version": "5.0.0-alpha.8",
3
+ "version": "5.0.0-alpha.81",
4
4
  "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
5
5
  "author": "Damian Osipiuk",
6
6
  "license": "MIT",
@@ -14,34 +14,45 @@
14
14
  "type": "github",
15
15
  "url": "https://github.com/sponsors/tannerlinsley"
16
16
  },
17
+ "type": "module",
17
18
  "types": "build/lib/index.d.ts",
18
- "main": "build/lib/index.js",
19
- "module": "build/lib/index.esm.js",
19
+ "main": "build/lib/index.legacy.cjs",
20
+ "module": "build/lib/index.legacy.js",
20
21
  "exports": {
21
22
  ".": {
22
23
  "types": "./build/lib/index.d.ts",
23
- "import": "./build/lib/index.mjs",
24
- "default": "./build/lib/index.js"
24
+ "import": "./build/lib/index.js",
25
+ "require": "./build/lib/index.cjs",
26
+ "default": "./build/lib/index.cjs"
25
27
  },
26
28
  "./package.json": "./package.json"
27
29
  },
28
30
  "sideEffects": false,
31
+ "nx": {
32
+ "targets": {
33
+ "test:lib": {
34
+ "dependsOn": [
35
+ "test:types"
36
+ ]
37
+ }
38
+ }
39
+ },
29
40
  "files": [
30
41
  "build/lib/*",
31
- "build/umd/*"
42
+ "src"
32
43
  ],
44
+ "dependencies": {
45
+ "@tanstack/match-sorter-utils": "^8.8.4",
46
+ "@vue/devtools-api": "^6.5.0",
47
+ "vue-demi": "^0.13.11",
48
+ "@tanstack/query-core": "5.0.0-alpha.81"
49
+ },
33
50
  "devDependencies": {
34
51
  "@vue/composition-api": "1.7.1",
35
52
  "vue": "^3.2.47",
36
53
  "vue2": "npm:vue@2.6",
37
54
  "vue2.7": "npm:vue@2.7"
38
55
  },
39
- "dependencies": {
40
- "@vue/devtools-api": "^6.5.0",
41
- "@tanstack/match-sorter-utils": "^8.7.6",
42
- "vue-demi": "^0.13.11",
43
- "@tanstack/query-core": "5.0.0-alpha.7"
44
- },
45
56
  "peerDependencies": {
46
57
  "@vue/composition-api": "^1.1.2",
47
58
  "vue": "^2.5.0 || ^3.0.0"
@@ -52,14 +63,17 @@
52
63
  }
53
64
  },
54
65
  "scripts": {
55
- "clean": "rimraf ./build",
66
+ "clean": "rimraf ./build && rimraf ./coverage",
56
67
  "test:eslint": "eslint --ext .ts,.tsx ./src",
57
- "test:types": "tsc",
68
+ "test:types": "tsc --noEmit",
58
69
  "test:lib": "pnpm run test:2 && pnpm run test:2.7 && pnpm run test:3",
59
70
  "test:2": "vue-demi-switch 2 vue2 && vitest",
60
71
  "test:2.7": "vue-demi-switch 2.7 vue2.7 && vitest",
61
72
  "test:3": "vue-demi-switch 3 && vitest",
62
73
  "test:lib:dev": "pnpm run test:lib --watch",
63
- "build:types": "tsc --build"
74
+ "test:build": "publint --strict",
75
+ "build": "pnpm build:rollup && pnpm build:types",
76
+ "build:rollup": "rollup --config rollup.config.js",
77
+ "build:types": "tsc --emitDeclarationOnly"
64
78
  }
65
79
  }
@@ -0,0 +1,8 @@
1
+ import { vi } from 'vitest'
2
+
3
+ const { useBaseQuery: originImpl, unrefQueryArgs: originalParse } =
4
+ // @ts-expect-error - vitest uses esmodules; tsconfig is not set to use them
5
+ (await vi.importActual('../useBaseQuery')) as any
6
+
7
+ export const useBaseQuery = vi.fn(originImpl)
8
+ export const unrefQueryArgs = originalParse
@@ -0,0 +1,10 @@
1
+ import { QueryClient } from '../queryClient'
2
+ import { vi } from 'vitest'
3
+
4
+ const queryClient = new QueryClient({
5
+ defaultOptions: {
6
+ queries: { retry: false, gcTime: Infinity },
7
+ },
8
+ })
9
+
10
+ export const useQueryClient = vi.fn(() => queryClient)
@@ -0,0 +1,40 @@
1
+ import { ref } from 'vue-demi'
2
+ import { MutationCache as MutationCacheOrigin } from '@tanstack/query-core'
3
+
4
+ import { MutationCache } from '../mutationCache'
5
+ import { vi } from 'vitest'
6
+
7
+ describe('MutationCache', () => {
8
+ beforeAll(() => {
9
+ vi.spyOn(MutationCacheOrigin.prototype, 'find')
10
+ vi.spyOn(MutationCacheOrigin.prototype, 'findAll')
11
+ })
12
+
13
+ describe('find', () => {
14
+ test('should properly unwrap parameters', async () => {
15
+ const mutationCache = new MutationCache()
16
+
17
+ mutationCache.find({
18
+ mutationKey: ref(['baz']),
19
+ })
20
+
21
+ expect(MutationCacheOrigin.prototype.find).toBeCalledWith({
22
+ mutationKey: ['baz'],
23
+ })
24
+ })
25
+ })
26
+
27
+ describe('findAll', () => {
28
+ test('should properly unwrap parameters', async () => {
29
+ const mutationCache = new MutationCache()
30
+
31
+ mutationCache.findAll({
32
+ mutationKey: ref(['baz']),
33
+ })
34
+
35
+ expect(MutationCacheOrigin.prototype.findAll).toBeCalledWith({
36
+ mutationKey: ['baz'],
37
+ })
38
+ })
39
+ })
40
+ })
@@ -0,0 +1,48 @@
1
+ import { ref } from 'vue-demi'
2
+ import { QueryCache as QueryCacheOrigin } from '@tanstack/query-core'
3
+
4
+ import { QueryCache } from '../queryCache'
5
+ import { vi } from 'vitest'
6
+
7
+ describe('QueryCache', () => {
8
+ beforeAll(() => {
9
+ vi.spyOn(QueryCacheOrigin.prototype, 'find')
10
+ vi.spyOn(QueryCacheOrigin.prototype, 'findAll')
11
+ })
12
+
13
+ describe('find', () => {
14
+ test('should properly unwrap parameters', async () => {
15
+ const queryCache = new QueryCache()
16
+
17
+ queryCache.find({
18
+ queryKey: ['foo', ref('bar')],
19
+ })
20
+
21
+ expect(QueryCacheOrigin.prototype.find).toBeCalledWith({
22
+ queryKey: ['foo', 'bar'],
23
+ })
24
+ })
25
+ })
26
+
27
+ describe('findAll', () => {
28
+ test('should properly unwrap two parameters', async () => {
29
+ const queryCache = new QueryCache()
30
+
31
+ queryCache.findAll({
32
+ queryKey: ['foo', ref('bar')],
33
+ })
34
+
35
+ expect(QueryCacheOrigin.prototype.findAll).toBeCalledWith({
36
+ queryKey: ['foo', 'bar'],
37
+ })
38
+ })
39
+
40
+ test('should default to empty filters', async () => {
41
+ const queryCache = new QueryCache()
42
+
43
+ queryCache.findAll()
44
+
45
+ expect(QueryCacheOrigin.prototype.findAll).toBeCalledWith({})
46
+ })
47
+ })
48
+ })
@@ -0,0 +1,365 @@
1
+ import { ref } from 'vue-demi'
2
+ import { QueryClient as QueryClientOrigin } from '@tanstack/query-core'
3
+
4
+ import { QueryClient } from '../queryClient'
5
+ import { vi } from 'vitest'
6
+
7
+ vi.mock('@tanstack/query-core')
8
+
9
+ const queryKeyRef = ['foo', ref('bar')]
10
+ const queryKeyUnref = ['foo', 'bar']
11
+
12
+ const fn = () => 'mock'
13
+
14
+ describe('QueryCache', () => {
15
+ describe('isFetching', () => {
16
+ test('should properly unwrap 1 parameter', async () => {
17
+ const queryClient = new QueryClient()
18
+
19
+ queryClient.isFetching({
20
+ queryKey: queryKeyRef,
21
+ })
22
+
23
+ expect(QueryClientOrigin.prototype.isFetching).toBeCalledWith({
24
+ queryKey: queryKeyUnref,
25
+ })
26
+ })
27
+ })
28
+
29
+ describe('isMutating', () => {
30
+ test('should properly unwrap 1 parameter', async () => {
31
+ const queryClient = new QueryClient()
32
+
33
+ queryClient.isMutating({
34
+ mutationKey: queryKeyRef,
35
+ })
36
+
37
+ expect(QueryClientOrigin.prototype.isMutating).toBeCalledWith({
38
+ mutationKey: queryKeyUnref,
39
+ })
40
+ })
41
+ })
42
+
43
+ describe('getQueryData', () => {
44
+ test('should properly unwrap 1 parameter', async () => {
45
+ const queryClient = new QueryClient()
46
+
47
+ queryClient.getQueryData(queryKeyRef)
48
+
49
+ expect(QueryClientOrigin.prototype.getQueryData).toBeCalledWith(
50
+ queryKeyUnref,
51
+ )
52
+ })
53
+ })
54
+
55
+ describe('getQueriesData', () => {
56
+ test('should properly unwrap queryKey param', async () => {
57
+ const queryClient = new QueryClient()
58
+
59
+ queryClient.getQueriesData({ queryKey: queryKeyRef })
60
+
61
+ expect(QueryClientOrigin.prototype.getQueriesData).toBeCalledWith({
62
+ queryKey: queryKeyUnref,
63
+ })
64
+ })
65
+
66
+ test('should properly unwrap filters param', async () => {
67
+ const queryClient = new QueryClient()
68
+
69
+ queryClient.getQueriesData({ queryKey: queryKeyRef })
70
+
71
+ expect(QueryClientOrigin.prototype.getQueriesData).toBeCalledWith({
72
+ queryKey: queryKeyUnref,
73
+ })
74
+ })
75
+ })
76
+
77
+ describe('setQueryData', () => {
78
+ test('should properly unwrap 3 parameter', async () => {
79
+ const queryClient = new QueryClient()
80
+
81
+ queryClient.setQueryData(queryKeyRef, fn, {
82
+ updatedAt: ref(3),
83
+ })
84
+
85
+ expect(QueryClientOrigin.prototype.setQueryData).toBeCalledWith(
86
+ queryKeyUnref,
87
+ fn,
88
+ { updatedAt: 3 },
89
+ )
90
+ })
91
+ })
92
+
93
+ describe('setQueriesData', () => {
94
+ test('should properly unwrap params with queryKey', async () => {
95
+ const queryClient = new QueryClient()
96
+
97
+ queryClient.setQueriesData({ queryKey: queryKeyRef }, fn, {
98
+ updatedAt: ref(3),
99
+ })
100
+
101
+ expect(QueryClientOrigin.prototype.setQueriesData).toBeCalledWith(
102
+ { queryKey: queryKeyUnref },
103
+ fn,
104
+ { updatedAt: 3 },
105
+ )
106
+ })
107
+
108
+ test('should properly unwrap params with filters', async () => {
109
+ const queryClient = new QueryClient()
110
+
111
+ queryClient.setQueriesData({ queryKey: queryKeyRef }, fn, {
112
+ updatedAt: ref(3),
113
+ })
114
+
115
+ expect(QueryClientOrigin.prototype.setQueriesData).toBeCalledWith(
116
+ { queryKey: queryKeyUnref },
117
+ fn,
118
+ { updatedAt: 3 },
119
+ )
120
+ })
121
+ })
122
+
123
+ describe('getQueryState', () => {
124
+ test('should properly unwrap 1 parameter', async () => {
125
+ const queryClient = new QueryClient()
126
+
127
+ queryClient.getQueryState(queryKeyRef)
128
+
129
+ expect(QueryClientOrigin.prototype.getQueryState).toBeCalledWith(
130
+ queryKeyUnref,
131
+ )
132
+ })
133
+ })
134
+
135
+ describe('removeQueries', () => {
136
+ test('should properly unwrap 1 parameter', async () => {
137
+ const queryClient = new QueryClient()
138
+
139
+ queryClient.removeQueries({
140
+ queryKey: queryKeyRef,
141
+ })
142
+
143
+ expect(QueryClientOrigin.prototype.removeQueries).toBeCalledWith({
144
+ queryKey: queryKeyUnref,
145
+ })
146
+ })
147
+ })
148
+
149
+ describe('resetQueries', () => {
150
+ test('should properly unwrap 2 parameter', async () => {
151
+ const queryClient = new QueryClient()
152
+
153
+ queryClient.resetQueries(
154
+ {
155
+ queryKey: queryKeyRef,
156
+ },
157
+ { cancelRefetch: ref(false) },
158
+ )
159
+
160
+ expect(QueryClientOrigin.prototype.resetQueries).toBeCalledWith(
161
+ {
162
+ queryKey: queryKeyUnref,
163
+ },
164
+ { cancelRefetch: false },
165
+ )
166
+ })
167
+ })
168
+
169
+ describe('cancelQueries', () => {
170
+ test('should properly unwrap 2 parameter', async () => {
171
+ const queryClient = new QueryClient()
172
+
173
+ queryClient.cancelQueries(
174
+ {
175
+ queryKey: queryKeyRef,
176
+ },
177
+ { revert: ref(false) },
178
+ )
179
+
180
+ expect(QueryClientOrigin.prototype.cancelQueries).toBeCalledWith(
181
+ {
182
+ queryKey: queryKeyUnref,
183
+ },
184
+ { revert: false },
185
+ )
186
+ })
187
+ })
188
+
189
+ describe('invalidateQueries', () => {
190
+ test('should properly unwrap 2 parameter', async () => {
191
+ const queryClient = new QueryClient()
192
+
193
+ queryClient.invalidateQueries(
194
+ {
195
+ queryKey: queryKeyRef,
196
+ },
197
+ { cancelRefetch: ref(false) },
198
+ )
199
+
200
+ expect(QueryClientOrigin.prototype.invalidateQueries).toBeCalledWith(
201
+ {
202
+ queryKey: queryKeyUnref,
203
+ },
204
+ { cancelRefetch: false },
205
+ )
206
+ })
207
+ })
208
+
209
+ describe('refetchQueries', () => {
210
+ test('should properly unwrap 2 parameter', async () => {
211
+ const queryClient = new QueryClient()
212
+
213
+ queryClient.refetchQueries(
214
+ {
215
+ queryKey: queryKeyRef,
216
+ },
217
+ { cancelRefetch: ref(false) },
218
+ )
219
+
220
+ expect(QueryClientOrigin.prototype.refetchQueries).toBeCalledWith(
221
+ {
222
+ queryKey: queryKeyUnref,
223
+ },
224
+ { cancelRefetch: false },
225
+ )
226
+ })
227
+ })
228
+
229
+ describe('fetchQuery', () => {
230
+ test('should properly unwrap parameter', async () => {
231
+ const queryClient = new QueryClient()
232
+
233
+ queryClient.fetchQuery({
234
+ queryKey: queryKeyRef,
235
+ })
236
+
237
+ expect(QueryClientOrigin.prototype.fetchQuery).toBeCalledWith({
238
+ queryKey: queryKeyUnref,
239
+ })
240
+ })
241
+ })
242
+
243
+ describe('prefetchQuery', () => {
244
+ test('should properly unwrap parameters', async () => {
245
+ const queryClient = new QueryClient()
246
+
247
+ queryClient.prefetchQuery({ queryKey: queryKeyRef, queryFn: fn })
248
+
249
+ expect(QueryClientOrigin.prototype.prefetchQuery).toBeCalledWith({
250
+ queryKey: queryKeyUnref,
251
+ queryFn: fn,
252
+ })
253
+ })
254
+ })
255
+
256
+ describe('fetchInfiniteQuery', () => {
257
+ test('should properly unwrap parameter', async () => {
258
+ const queryClient = new QueryClient()
259
+
260
+ queryClient.fetchInfiniteQuery({
261
+ queryKey: queryKeyRef,
262
+ defaultPageParam: 0,
263
+ })
264
+
265
+ expect(QueryClientOrigin.prototype.fetchInfiniteQuery).toBeCalledWith({
266
+ defaultPageParam: 0,
267
+ queryKey: queryKeyUnref,
268
+ })
269
+ })
270
+ })
271
+
272
+ describe('prefetchInfiniteQuery', () => {
273
+ test('should properly unwrap parameters', async () => {
274
+ const queryClient = new QueryClient()
275
+
276
+ queryClient.prefetchInfiniteQuery({
277
+ queryKey: queryKeyRef,
278
+ queryFn: fn,
279
+ defaultPageParam: 0,
280
+ })
281
+
282
+ expect(QueryClientOrigin.prototype.prefetchInfiniteQuery).toBeCalledWith({
283
+ defaultPageParam: 0,
284
+ queryKey: queryKeyUnref,
285
+ queryFn: fn,
286
+ })
287
+ })
288
+ })
289
+
290
+ describe('setDefaultOptions', () => {
291
+ test('should properly unwrap parameters', async () => {
292
+ const queryClient = new QueryClient()
293
+
294
+ queryClient.setDefaultOptions({
295
+ queries: {
296
+ enabled: ref(false),
297
+ },
298
+ })
299
+
300
+ expect(QueryClientOrigin.prototype.setDefaultOptions).toBeCalledWith({
301
+ queries: {
302
+ enabled: false,
303
+ },
304
+ })
305
+ })
306
+ })
307
+
308
+ describe('setQueryDefaults', () => {
309
+ test('should properly unwrap parameters', async () => {
310
+ const queryClient = new QueryClient()
311
+
312
+ queryClient.setQueryDefaults(queryKeyRef, {
313
+ enabled: ref(false),
314
+ })
315
+
316
+ expect(QueryClientOrigin.prototype.setQueryDefaults).toBeCalledWith(
317
+ queryKeyUnref,
318
+ {
319
+ enabled: false,
320
+ },
321
+ )
322
+ })
323
+ })
324
+
325
+ describe('getQueryDefaults', () => {
326
+ test('should properly unwrap parameters', async () => {
327
+ const queryClient = new QueryClient()
328
+
329
+ queryClient.getQueryDefaults(queryKeyRef)
330
+
331
+ expect(QueryClientOrigin.prototype.getQueryDefaults).toBeCalledWith(
332
+ queryKeyUnref,
333
+ )
334
+ })
335
+ })
336
+
337
+ describe('setMutationDefaults', () => {
338
+ test('should properly unwrap parameters', async () => {
339
+ const queryClient = new QueryClient()
340
+
341
+ queryClient.setMutationDefaults(queryKeyRef, {
342
+ mutationKey: queryKeyRef,
343
+ })
344
+
345
+ expect(QueryClientOrigin.prototype.setMutationDefaults).toBeCalledWith(
346
+ queryKeyUnref,
347
+ {
348
+ mutationKey: queryKeyUnref,
349
+ },
350
+ )
351
+ })
352
+ })
353
+
354
+ describe('getMutationDefaults', () => {
355
+ test('should properly unwrap parameters', async () => {
356
+ const queryClient = new QueryClient()
357
+
358
+ queryClient.getMutationDefaults(queryKeyRef)
359
+
360
+ expect(QueryClientOrigin.prototype.getMutationDefaults).toBeCalledWith(
361
+ queryKeyUnref,
362
+ )
363
+ })
364
+ })
365
+ })
@@ -0,0 +1,62 @@
1
+ /* istanbul ignore file */
2
+
3
+ export function flushPromises(timeout = 0): Promise<unknown> {
4
+ return new Promise(function (resolve) {
5
+ setTimeout(resolve, timeout)
6
+ })
7
+ }
8
+
9
+ export function simpleFetcher(): Promise<string> {
10
+ return new Promise((resolve) => {
11
+ setTimeout(() => {
12
+ return resolve('Some data')
13
+ }, 0)
14
+ })
15
+ }
16
+
17
+ export function getSimpleFetcherWithReturnData(returnData: unknown) {
18
+ return () =>
19
+ new Promise((resolve) => setTimeout(() => resolve(returnData), 0))
20
+ }
21
+
22
+ export function infiniteFetcher({
23
+ pageParam,
24
+ }: {
25
+ pageParam?: number
26
+ }): Promise<string> {
27
+ return new Promise((resolve) => {
28
+ setTimeout(() => {
29
+ return resolve('data on page ' + pageParam)
30
+ }, 0)
31
+ })
32
+ }
33
+
34
+ export function rejectFetcher(): Promise<Error> {
35
+ return new Promise((_, reject) => {
36
+ setTimeout(() => {
37
+ return reject(new Error('Some error'))
38
+ }, 0)
39
+ })
40
+ }
41
+
42
+ export function successMutator<T>(param: T): Promise<T> {
43
+ return new Promise((resolve) => {
44
+ setTimeout(() => {
45
+ return resolve(param)
46
+ }, 0)
47
+ })
48
+ }
49
+
50
+ export function errorMutator<T>(_: T): Promise<Error> {
51
+ return rejectFetcher()
52
+ }
53
+
54
+ export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
55
+ T,
56
+ >() => T extends Y ? 1 : 2
57
+ ? true
58
+ : false
59
+
60
+ export type Expect<T extends true> = T
61
+
62
+ export const doNotExecute = (_func: () => void) => true
@@ -0,0 +1,37 @@
1
+ import { infiniteFetcher, flushPromises } from './test-utils'
2
+ import { useInfiniteQuery } from '../useInfiniteQuery'
3
+ import { vi } from 'vitest'
4
+
5
+ vi.mock('../useQueryClient')
6
+
7
+ describe('useQuery', () => {
8
+ test('should properly execute infinite query', async () => {
9
+ const { data, fetchNextPage, status } = useInfiniteQuery({
10
+ queryKey: ['infiniteQuery'],
11
+ queryFn: infiniteFetcher,
12
+ defaultPageParam: 0,
13
+ getNextPageParam: () => 12,
14
+ })
15
+
16
+ expect(data.value).toStrictEqual(undefined)
17
+ expect(status.value).toStrictEqual('pending')
18
+
19
+ await flushPromises()
20
+
21
+ expect(data.value).toStrictEqual({
22
+ pageParams: [0],
23
+ pages: ['data on page 0'],
24
+ })
25
+ expect(status.value).toStrictEqual('success')
26
+
27
+ fetchNextPage()
28
+
29
+ await flushPromises()
30
+
31
+ expect(data.value).toStrictEqual({
32
+ pageParams: [0, 12],
33
+ pages: ['data on page 0', 'data on page 12'],
34
+ })
35
+ expect(status.value).toStrictEqual('success')
36
+ })
37
+ })