@tanstack/react-query 5.0.0-alpha.9 → 5.0.0-alpha.91

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 (411) hide show
  1. package/build/codemods/remove-overloads/remove-overloads.js +59 -0
  2. package/build/codemods/remove-overloads/transformers/filter-aware-usage-transformer.js +153 -0
  3. package/build/codemods/remove-overloads/transformers/query-fn-aware-usage-transformer.js +188 -0
  4. package/build/codemods/remove-overloads/utils/index.js +124 -0
  5. package/build/codemods/remove-overloads/utils/unknown-usage-error.js +27 -0
  6. package/build/codemods/rename-hydrate/rename-hydrate.js +55 -0
  7. package/build/codemods/rename-properties/rename-properties.js +41 -0
  8. package/build/codemods/src/utils/index.js +205 -0
  9. package/build/codemods/src/v4/key-transformation.js +138 -0
  10. package/build/codemods/src/v4/replace-import-specifier.js +25 -0
  11. package/build/codemods/transformers/query-cache-transformer.js +116 -0
  12. package/build/codemods/transformers/query-client-transformer.js +48 -0
  13. package/build/codemods/transformers/use-query-like-transformer.js +32 -0
  14. package/build/codemods/utils/replacers/key-replacer.js +164 -0
  15. package/build/legacy/HydrationBoundary.cjs +60 -0
  16. package/build/legacy/HydrationBoundary.cjs.map +1 -0
  17. package/build/legacy/HydrationBoundary.d.cts +12 -0
  18. package/build/legacy/HydrationBoundary.d.ts +12 -0
  19. package/build/legacy/HydrationBoundary.js +26 -0
  20. package/build/legacy/HydrationBoundary.js.map +1 -0
  21. package/build/legacy/QueryClientProvider.cjs +71 -0
  22. package/build/legacy/QueryClientProvider.cjs.map +1 -0
  23. package/build/legacy/QueryClientProvider.d.cts +12 -0
  24. package/build/legacy/QueryClientProvider.d.ts +12 -0
  25. package/build/legacy/QueryClientProvider.js +35 -0
  26. package/build/legacy/QueryClientProvider.js.map +1 -0
  27. package/build/legacy/QueryErrorResetBoundary.cjs +66 -0
  28. package/build/legacy/QueryErrorResetBoundary.cjs.map +1 -0
  29. package/build/legacy/QueryErrorResetBoundary.d.cts +14 -0
  30. package/build/legacy/QueryErrorResetBoundary.d.ts +14 -0
  31. package/build/legacy/QueryErrorResetBoundary.js +31 -0
  32. package/build/legacy/QueryErrorResetBoundary.js.map +1 -0
  33. package/build/legacy/errorBoundaryUtils.cjs +67 -0
  34. package/build/legacy/errorBoundaryUtils.cjs.map +1 -0
  35. package/build/legacy/errorBoundaryUtils.d.cts +14 -0
  36. package/build/legacy/errorBoundaryUtils.d.ts +14 -0
  37. package/build/legacy/errorBoundaryUtils.js +31 -0
  38. package/build/legacy/errorBoundaryUtils.js.map +1 -0
  39. package/build/legacy/index.cjs +85 -0
  40. package/build/legacy/index.cjs.map +1 -0
  41. package/build/legacy/index.d.cts +17 -0
  42. package/build/legacy/index.d.ts +17 -0
  43. package/build/legacy/index.js +46 -0
  44. package/build/legacy/index.js.map +1 -0
  45. package/build/legacy/infiniteQueryOptions.cjs +33 -0
  46. package/build/legacy/infiniteQueryOptions.cjs.map +1 -0
  47. package/build/legacy/infiniteQueryOptions.d.cts +13 -0
  48. package/build/legacy/infiniteQueryOptions.d.ts +13 -0
  49. package/build/legacy/infiniteQueryOptions.js +8 -0
  50. package/build/legacy/infiniteQueryOptions.js.map +1 -0
  51. package/build/legacy/isRestoring.cjs +47 -0
  52. package/build/legacy/isRestoring.cjs.map +1 -0
  53. package/build/legacy/isRestoring.d.cts +6 -0
  54. package/build/legacy/isRestoring.d.ts +6 -0
  55. package/build/legacy/isRestoring.js +12 -0
  56. package/build/legacy/isRestoring.js.map +1 -0
  57. package/build/legacy/queryOptions.cjs +33 -0
  58. package/build/legacy/queryOptions.cjs.map +1 -0
  59. package/build/legacy/queryOptions.d.cts +13 -0
  60. package/build/legacy/queryOptions.d.ts +13 -0
  61. package/build/legacy/queryOptions.js +8 -0
  62. package/build/legacy/queryOptions.js.map +1 -0
  63. package/build/legacy/suspense.cjs +48 -0
  64. package/build/legacy/suspense.cjs.map +1 -0
  65. package/build/legacy/suspense.d.cts +10 -0
  66. package/build/legacy/suspense.d.ts +10 -0
  67. package/build/legacy/suspense.js +20 -0
  68. package/build/legacy/suspense.js.map +1 -0
  69. package/build/legacy/types.cjs +19 -0
  70. package/build/legacy/types.cjs.map +1 -0
  71. package/build/legacy/types.d.cts +34 -0
  72. package/build/legacy/types.d.ts +34 -0
  73. package/build/legacy/types.js +1 -0
  74. package/build/legacy/types.js.map +1 -0
  75. package/build/legacy/useBaseQuery.cjs +92 -0
  76. package/build/legacy/useBaseQuery.cjs.map +1 -0
  77. package/build/legacy/useBaseQuery.d.cts +92 -0
  78. package/build/legacy/useBaseQuery.d.ts +92 -0
  79. package/build/legacy/useBaseQuery.js +62 -0
  80. package/build/legacy/useBaseQuery.js.map +1 -0
  81. package/build/legacy/useInfiniteQuery.cjs +41 -0
  82. package/build/legacy/useInfiniteQuery.cjs.map +1 -0
  83. package/build/legacy/useInfiniteQuery.d.cts +8 -0
  84. package/build/legacy/useInfiniteQuery.d.ts +8 -0
  85. package/build/legacy/useInfiniteQuery.js +17 -0
  86. package/build/legacy/useInfiniteQuery.js.map +1 -0
  87. package/build/legacy/useIsFetching.cjs +56 -0
  88. package/build/legacy/useIsFetching.cjs.map +1 -0
  89. package/build/legacy/useIsFetching.d.cts +5 -0
  90. package/build/legacy/useIsFetching.d.ts +5 -0
  91. package/build/legacy/useIsFetching.js +22 -0
  92. package/build/legacy/useIsFetching.js.map +1 -0
  93. package/build/legacy/useMutation.cjs +77 -0
  94. package/build/legacy/useMutation.cjs.map +1 -0
  95. package/build/legacy/useMutation.d.cts +6 -0
  96. package/build/legacy/useMutation.d.ts +6 -0
  97. package/build/legacy/useMutation.js +43 -0
  98. package/build/legacy/useMutation.js.map +1 -0
  99. package/build/legacy/useMutationState.cjs +88 -0
  100. package/build/legacy/useMutationState.cjs.map +1 -0
  101. package/build/legacy/useMutationState.d.cts +10 -0
  102. package/build/legacy/useMutationState.d.ts +10 -0
  103. package/build/legacy/useMutationState.js +53 -0
  104. package/build/legacy/useMutationState.js.map +1 -0
  105. package/build/legacy/useQueries.cjs +128 -0
  106. package/build/legacy/useQueries.cjs.map +1 -0
  107. package/build/legacy/useQueries.d.cts +53 -0
  108. package/build/{lib → legacy}/useQueries.d.ts +14 -11
  109. package/build/legacy/useQueries.js +103 -0
  110. package/build/legacy/useQueries.js.map +1 -0
  111. package/build/legacy/useQuery.cjs +36 -0
  112. package/build/legacy/useQuery.cjs.map +1 -0
  113. package/build/legacy/useQuery.d.cts +8 -0
  114. package/build/legacy/useQuery.d.ts +8 -0
  115. package/build/legacy/useQuery.js +12 -0
  116. package/build/legacy/useQuery.js.map +1 -0
  117. package/build/legacy/useSuspenseInfiniteQuery.cjs +46 -0
  118. package/build/legacy/useSuspenseInfiniteQuery.cjs.map +1 -0
  119. package/build/legacy/useSuspenseInfiniteQuery.d.cts +6 -0
  120. package/build/legacy/useSuspenseInfiniteQuery.d.ts +6 -0
  121. package/build/legacy/useSuspenseInfiniteQuery.js +22 -0
  122. package/build/legacy/useSuspenseInfiniteQuery.js.map +1 -0
  123. package/build/legacy/useSuspenseQuery.cjs +45 -0
  124. package/build/legacy/useSuspenseQuery.cjs.map +1 -0
  125. package/build/legacy/useSuspenseQuery.d.cts +6 -0
  126. package/build/legacy/useSuspenseQuery.d.ts +6 -0
  127. package/build/legacy/useSuspenseQuery.js +21 -0
  128. package/build/legacy/useSuspenseQuery.js.map +1 -0
  129. package/build/legacy/utils.cjs +36 -0
  130. package/build/legacy/utils.cjs.map +1 -0
  131. package/build/legacy/utils.d.cts +3 -0
  132. package/build/legacy/utils.d.ts +3 -0
  133. package/build/legacy/utils.js +11 -0
  134. package/build/legacy/utils.js.map +1 -0
  135. package/build/modern/HydrationBoundary.cjs +60 -0
  136. package/build/modern/HydrationBoundary.cjs.map +1 -0
  137. package/build/modern/HydrationBoundary.d.cts +12 -0
  138. package/build/modern/HydrationBoundary.d.ts +12 -0
  139. package/build/modern/HydrationBoundary.js +26 -0
  140. package/build/modern/HydrationBoundary.js.map +1 -0
  141. package/build/modern/QueryClientProvider.cjs +71 -0
  142. package/build/modern/QueryClientProvider.cjs.map +1 -0
  143. package/build/modern/QueryClientProvider.d.cts +12 -0
  144. package/build/modern/QueryClientProvider.d.ts +12 -0
  145. package/build/modern/QueryClientProvider.js +35 -0
  146. package/build/modern/QueryClientProvider.js.map +1 -0
  147. package/build/modern/QueryErrorResetBoundary.cjs +66 -0
  148. package/build/modern/QueryErrorResetBoundary.cjs.map +1 -0
  149. package/build/modern/QueryErrorResetBoundary.d.cts +14 -0
  150. package/build/modern/QueryErrorResetBoundary.d.ts +14 -0
  151. package/build/modern/QueryErrorResetBoundary.js +31 -0
  152. package/build/modern/QueryErrorResetBoundary.js.map +1 -0
  153. package/build/modern/errorBoundaryUtils.cjs +67 -0
  154. package/build/modern/errorBoundaryUtils.cjs.map +1 -0
  155. package/build/modern/errorBoundaryUtils.d.cts +14 -0
  156. package/build/modern/errorBoundaryUtils.d.ts +14 -0
  157. package/build/modern/errorBoundaryUtils.js +31 -0
  158. package/build/modern/errorBoundaryUtils.js.map +1 -0
  159. package/build/modern/index.cjs +85 -0
  160. package/build/modern/index.cjs.map +1 -0
  161. package/build/modern/index.d.cts +17 -0
  162. package/build/modern/index.d.ts +17 -0
  163. package/build/modern/index.js +46 -0
  164. package/build/modern/index.js.map +1 -0
  165. package/build/modern/infiniteQueryOptions.cjs +33 -0
  166. package/build/modern/infiniteQueryOptions.cjs.map +1 -0
  167. package/build/modern/infiniteQueryOptions.d.cts +13 -0
  168. package/build/modern/infiniteQueryOptions.d.ts +13 -0
  169. package/build/modern/infiniteQueryOptions.js +8 -0
  170. package/build/modern/infiniteQueryOptions.js.map +1 -0
  171. package/build/modern/isRestoring.cjs +47 -0
  172. package/build/modern/isRestoring.cjs.map +1 -0
  173. package/build/modern/isRestoring.d.cts +6 -0
  174. package/build/modern/isRestoring.d.ts +6 -0
  175. package/build/modern/isRestoring.js +12 -0
  176. package/build/modern/isRestoring.js.map +1 -0
  177. package/build/modern/queryOptions.cjs +33 -0
  178. package/build/modern/queryOptions.cjs.map +1 -0
  179. package/build/modern/queryOptions.d.cts +13 -0
  180. package/build/modern/queryOptions.d.ts +13 -0
  181. package/build/modern/queryOptions.js +8 -0
  182. package/build/modern/queryOptions.js.map +1 -0
  183. package/build/modern/suspense.cjs +48 -0
  184. package/build/modern/suspense.cjs.map +1 -0
  185. package/build/modern/suspense.d.cts +10 -0
  186. package/build/modern/suspense.d.ts +10 -0
  187. package/build/modern/suspense.js +20 -0
  188. package/build/modern/suspense.js.map +1 -0
  189. package/build/modern/types.cjs +19 -0
  190. package/build/modern/types.cjs.map +1 -0
  191. package/build/modern/types.d.cts +34 -0
  192. package/build/modern/types.d.ts +34 -0
  193. package/build/modern/types.js +1 -0
  194. package/build/modern/types.js.map +1 -0
  195. package/build/modern/useBaseQuery.cjs +92 -0
  196. package/build/modern/useBaseQuery.cjs.map +1 -0
  197. package/build/modern/useBaseQuery.d.cts +92 -0
  198. package/build/modern/useBaseQuery.d.ts +92 -0
  199. package/build/modern/useBaseQuery.js +62 -0
  200. package/build/modern/useBaseQuery.js.map +1 -0
  201. package/build/modern/useInfiniteQuery.cjs +41 -0
  202. package/build/modern/useInfiniteQuery.cjs.map +1 -0
  203. package/build/modern/useInfiniteQuery.d.cts +8 -0
  204. package/build/modern/useInfiniteQuery.d.ts +8 -0
  205. package/build/modern/useInfiniteQuery.js +17 -0
  206. package/build/modern/useInfiniteQuery.js.map +1 -0
  207. package/build/modern/useIsFetching.cjs +56 -0
  208. package/build/modern/useIsFetching.cjs.map +1 -0
  209. package/build/modern/useIsFetching.d.cts +5 -0
  210. package/build/modern/useIsFetching.d.ts +5 -0
  211. package/build/modern/useIsFetching.js +22 -0
  212. package/build/modern/useIsFetching.js.map +1 -0
  213. package/build/modern/useMutation.cjs +77 -0
  214. package/build/modern/useMutation.cjs.map +1 -0
  215. package/build/modern/useMutation.d.cts +6 -0
  216. package/build/modern/useMutation.d.ts +6 -0
  217. package/build/modern/useMutation.js +43 -0
  218. package/build/modern/useMutation.js.map +1 -0
  219. package/build/modern/useMutationState.cjs +88 -0
  220. package/build/modern/useMutationState.cjs.map +1 -0
  221. package/build/modern/useMutationState.d.cts +10 -0
  222. package/build/modern/useMutationState.d.ts +10 -0
  223. package/build/modern/useMutationState.js +53 -0
  224. package/build/modern/useMutationState.js.map +1 -0
  225. package/build/modern/useQueries.cjs +125 -0
  226. package/build/modern/useQueries.cjs.map +1 -0
  227. package/build/modern/useQueries.d.cts +53 -0
  228. package/build/modern/useQueries.d.ts +53 -0
  229. package/build/modern/useQueries.js +100 -0
  230. package/build/modern/useQueries.js.map +1 -0
  231. package/build/modern/useQuery.cjs +36 -0
  232. package/build/modern/useQuery.cjs.map +1 -0
  233. package/build/modern/useQuery.d.cts +8 -0
  234. package/build/modern/useQuery.d.ts +8 -0
  235. package/build/modern/useQuery.js +12 -0
  236. package/build/modern/useQuery.js.map +1 -0
  237. package/build/modern/useSuspenseInfiniteQuery.cjs +46 -0
  238. package/build/modern/useSuspenseInfiniteQuery.cjs.map +1 -0
  239. package/build/modern/useSuspenseInfiniteQuery.d.cts +6 -0
  240. package/build/modern/useSuspenseInfiniteQuery.d.ts +6 -0
  241. package/build/modern/useSuspenseInfiniteQuery.js +22 -0
  242. package/build/modern/useSuspenseInfiniteQuery.js.map +1 -0
  243. package/build/modern/useSuspenseQuery.cjs +45 -0
  244. package/build/modern/useSuspenseQuery.cjs.map +1 -0
  245. package/build/modern/useSuspenseQuery.d.cts +6 -0
  246. package/build/modern/useSuspenseQuery.d.ts +6 -0
  247. package/build/modern/useSuspenseQuery.js +21 -0
  248. package/build/modern/useSuspenseQuery.js.map +1 -0
  249. package/build/modern/utils.cjs +36 -0
  250. package/build/modern/utils.cjs.map +1 -0
  251. package/build/modern/utils.d.cts +3 -0
  252. package/build/modern/utils.d.ts +3 -0
  253. package/build/modern/utils.js +11 -0
  254. package/build/modern/utils.js.map +1 -0
  255. package/package.json +29 -17
  256. package/src/HydrationBoundary.tsx +1 -1
  257. package/src/__tests__/HydrationBoundary.test.tsx +5 -5
  258. package/src/__tests__/QueryClientProvider.test.tsx +2 -2
  259. package/src/__tests__/QueryResetErrorBoundary.test.tsx +753 -621
  260. package/src/__tests__/ssr-hydration.test.tsx +4 -4
  261. package/src/__tests__/ssr.test.tsx +2 -2
  262. package/src/__tests__/suspense.test.tsx +8 -90
  263. package/src/__tests__/useInfiniteQuery.test.tsx +36 -74
  264. package/src/__tests__/useInfiniteQuery.type.test.tsx +2 -29
  265. package/src/__tests__/useIsFetching.test.tsx +1 -1
  266. package/src/__tests__/useMutation.test.tsx +22 -23
  267. package/src/__tests__/useMutationState.test.tsx +23 -0
  268. package/src/__tests__/useQueries.test.tsx +214 -91
  269. package/src/__tests__/useQuery.test.tsx +691 -551
  270. package/src/__tests__/useQuery.types.test.tsx +22 -1
  271. package/src/__tests__/utils.tsx +11 -5
  272. package/src/errorBoundaryUtils.ts +7 -7
  273. package/src/index.ts +4 -0
  274. package/src/infiniteQueryOptions.ts +93 -0
  275. package/src/queryOptions.ts +42 -0
  276. package/src/suspense.ts +9 -15
  277. package/src/types.ts +50 -8
  278. package/src/useBaseQuery.ts +14 -26
  279. package/src/useInfiniteQuery.ts +50 -7
  280. package/src/useIsFetching.ts +1 -1
  281. package/src/useMutation.ts +4 -4
  282. package/src/useMutationState.ts +8 -8
  283. package/src/useQueries.ts +53 -36
  284. package/src/useQuery.ts +6 -21
  285. package/src/useSuspenseInfiniteQuery.ts +47 -0
  286. package/src/useSuspenseQuery.ts +26 -0
  287. package/build/lib/HydrationBoundary.d.ts +0 -9
  288. package/build/lib/HydrationBoundary.esm.js +0 -29
  289. package/build/lib/HydrationBoundary.esm.js.map +0 -1
  290. package/build/lib/HydrationBoundary.js +0 -50
  291. package/build/lib/HydrationBoundary.js.map +0 -1
  292. package/build/lib/HydrationBoundary.mjs +0 -29
  293. package/build/lib/HydrationBoundary.mjs.map +0 -1
  294. package/build/lib/QueryClientProvider.d.ts +0 -9
  295. package/build/lib/QueryClientProvider.esm.js +0 -31
  296. package/build/lib/QueryClientProvider.esm.js.map +0 -1
  297. package/build/lib/QueryClientProvider.js +0 -54
  298. package/build/lib/QueryClientProvider.js.map +0 -1
  299. package/build/lib/QueryClientProvider.mjs +0 -31
  300. package/build/lib/QueryClientProvider.mjs.map +0 -1
  301. package/build/lib/QueryErrorResetBoundary.d.ts +0 -11
  302. package/build/lib/QueryErrorResetBoundary.esm.js +0 -38
  303. package/build/lib/QueryErrorResetBoundary.esm.js.map +0 -1
  304. package/build/lib/QueryErrorResetBoundary.js +0 -60
  305. package/build/lib/QueryErrorResetBoundary.js.map +0 -1
  306. package/build/lib/QueryErrorResetBoundary.mjs +0 -38
  307. package/build/lib/QueryErrorResetBoundary.mjs.map +0 -1
  308. package/build/lib/__tests__/HydrationBoundary.test.d.ts +0 -1
  309. package/build/lib/__tests__/QueryClientProvider.test.d.ts +0 -1
  310. package/build/lib/__tests__/QueryResetErrorBoundary.test.d.ts +0 -6
  311. package/build/lib/__tests__/ssr-hydration.test.d.ts +0 -1
  312. package/build/lib/__tests__/ssr.test.d.ts +0 -1
  313. package/build/lib/__tests__/suspense.test.d.ts +0 -1
  314. package/build/lib/__tests__/useInfiniteQuery.test.d.ts +0 -1
  315. package/build/lib/__tests__/useInfiniteQuery.type.test.d.ts +0 -1
  316. package/build/lib/__tests__/useIsFetching.test.d.ts +0 -1
  317. package/build/lib/__tests__/useMutation.test.d.ts +0 -1
  318. package/build/lib/__tests__/useMutationState.test.d.ts +0 -1
  319. package/build/lib/__tests__/useQueries.test.d.ts +0 -1
  320. package/build/lib/__tests__/useQuery.test.d.ts +0 -1
  321. package/build/lib/__tests__/useQuery.types.test.d.ts +0 -1
  322. package/build/lib/__tests__/utils.d.ts +0 -28
  323. package/build/lib/errorBoundaryUtils.d.ts +0 -10
  324. package/build/lib/errorBoundaryUtils.esm.js +0 -28
  325. package/build/lib/errorBoundaryUtils.esm.js.map +0 -1
  326. package/build/lib/errorBoundaryUtils.js +0 -51
  327. package/build/lib/errorBoundaryUtils.js.map +0 -1
  328. package/build/lib/errorBoundaryUtils.mjs +0 -28
  329. package/build/lib/errorBoundaryUtils.mjs.map +0 -1
  330. package/build/lib/index.d.ts +0 -16
  331. package/build/lib/index.esm.js +0 -12
  332. package/build/lib/index.esm.js.map +0 -1
  333. package/build/lib/index.js +0 -38
  334. package/build/lib/index.js.map +0 -1
  335. package/build/lib/index.mjs +0 -12
  336. package/build/lib/index.mjs.map +0 -1
  337. package/build/lib/isRestoring.d.ts +0 -3
  338. package/build/lib/isRestoring.esm.js +0 -9
  339. package/build/lib/isRestoring.esm.js.map +0 -1
  340. package/build/lib/isRestoring.js +0 -31
  341. package/build/lib/isRestoring.js.map +0 -1
  342. package/build/lib/isRestoring.mjs +0 -9
  343. package/build/lib/isRestoring.mjs.map +0 -1
  344. package/build/lib/suspense.d.ts +0 -9
  345. package/build/lib/suspense.esm.js +0 -24
  346. package/build/lib/suspense.esm.js.map +0 -1
  347. package/build/lib/suspense.js +0 -29
  348. package/build/lib/suspense.js.map +0 -1
  349. package/build/lib/suspense.mjs +0 -24
  350. package/build/lib/suspense.mjs.map +0 -1
  351. package/build/lib/types.d.ts +0 -26
  352. package/build/lib/useBaseQuery.d.ts +0 -3
  353. package/build/lib/useBaseQuery.esm.js +0 -63
  354. package/build/lib/useBaseQuery.esm.js.map +0 -1
  355. package/build/lib/useBaseQuery.js +0 -84
  356. package/build/lib/useBaseQuery.js.map +0 -1
  357. package/build/lib/useBaseQuery.mjs +0 -63
  358. package/build/lib/useBaseQuery.mjs.map +0 -1
  359. package/build/lib/useInfiniteQuery.d.ts +0 -3
  360. package/build/lib/useInfiniteQuery.esm.js +0 -13
  361. package/build/lib/useInfiniteQuery.esm.js.map +0 -1
  362. package/build/lib/useInfiniteQuery.js +0 -15
  363. package/build/lib/useInfiniteQuery.js.map +0 -1
  364. package/build/lib/useInfiniteQuery.mjs +0 -13
  365. package/build/lib/useInfiniteQuery.mjs.map +0 -1
  366. package/build/lib/useIsFetching.d.ts +0 -2
  367. package/build/lib/useIsFetching.esm.js +0 -13
  368. package/build/lib/useIsFetching.esm.js.map +0 -1
  369. package/build/lib/useIsFetching.js +0 -34
  370. package/build/lib/useIsFetching.js.map +0 -1
  371. package/build/lib/useIsFetching.mjs +0 -13
  372. package/build/lib/useIsFetching.mjs.map +0 -1
  373. package/build/lib/useMutation.d.ts +0 -3
  374. package/build/lib/useMutation.esm.js +0 -33
  375. package/build/lib/useMutation.esm.js.map +0 -1
  376. package/build/lib/useMutation.js +0 -54
  377. package/build/lib/useMutation.js.map +0 -1
  378. package/build/lib/useMutation.mjs +0 -33
  379. package/build/lib/useMutation.mjs.map +0 -1
  380. package/build/lib/useMutationState.d.ts +0 -8
  381. package/build/lib/useMutationState.esm.js +0 -38
  382. package/build/lib/useMutationState.esm.js.map +0 -1
  383. package/build/lib/useMutationState.js +0 -60
  384. package/build/lib/useMutationState.js.map +0 -1
  385. package/build/lib/useMutationState.mjs +0 -38
  386. package/build/lib/useMutationState.mjs.map +0 -1
  387. package/build/lib/useQueries.esm.js +0 -73
  388. package/build/lib/useQueries.esm.js.map +0 -1
  389. package/build/lib/useQueries.js +0 -94
  390. package/build/lib/useQueries.js.map +0 -1
  391. package/build/lib/useQueries.mjs +0 -70
  392. package/build/lib/useQueries.mjs.map +0 -1
  393. package/build/lib/useQuery.d.ts +0 -11
  394. package/build/lib/useQuery.esm.js +0 -12
  395. package/build/lib/useQuery.esm.js.map +0 -1
  396. package/build/lib/useQuery.js +0 -14
  397. package/build/lib/useQuery.js.map +0 -1
  398. package/build/lib/useQuery.mjs +0 -12
  399. package/build/lib/useQuery.mjs.map +0 -1
  400. package/build/lib/utils.d.ts +0 -1
  401. package/build/lib/utils.esm.js +0 -10
  402. package/build/lib/utils.esm.js.map +0 -1
  403. package/build/lib/utils.js +0 -12
  404. package/build/lib/utils.js.map +0 -1
  405. package/build/lib/utils.mjs +0 -10
  406. package/build/lib/utils.mjs.map +0 -1
  407. package/build/umd/index.development.js +0 -3040
  408. package/build/umd/index.development.js.map +0 -1
  409. package/build/umd/index.production.js +0 -2
  410. package/build/umd/index.production.js.map +0 -1
  411. /package/src/{isRestoring.tsx → isRestoring.ts} +0 -0
@@ -1,16 +1,8 @@
1
- import { render, waitFor } from '@testing-library/react'
1
+ import { fireEvent, render, waitFor } from '@testing-library/react'
2
2
  import * as React from 'react'
3
3
  import { ErrorBoundary } from 'react-error-boundary'
4
4
 
5
- import type { QueryFunctionContext } from '@tanstack/query-core'
6
5
  import { vi } from 'vitest'
7
- import type {
8
- QueryFunction,
9
- QueryKey,
10
- QueryObserverResult,
11
- UseQueryOptions,
12
- UseQueryResult,
13
- } from '..'
14
6
  import { QueryCache, useQueries } from '..'
15
7
  import {
16
8
  createQueryClient,
@@ -20,6 +12,14 @@ import {
20
12
  renderWithClient,
21
13
  sleep,
22
14
  } from './utils'
15
+ import type {
16
+ QueryFunction,
17
+ QueryKey,
18
+ QueryObserverResult,
19
+ UseQueryOptions,
20
+ UseQueryResult,
21
+ } from '..'
22
+ import type { QueryFunctionContext } from '@tanstack/query-core'
23
23
 
24
24
  describe('useQueries', () => {
25
25
  const queryCache = new QueryCache()
@@ -71,6 +71,52 @@ describe('useQueries', () => {
71
71
  expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }])
72
72
  })
73
73
 
74
+ it('should track results', async () => {
75
+ const key1 = queryKey()
76
+ const results: UseQueryResult[][] = []
77
+ let count = 0
78
+
79
+ function Page() {
80
+ const result = useQueries({
81
+ queries: [
82
+ {
83
+ queryKey: key1,
84
+ queryFn: async () => {
85
+ await sleep(10)
86
+ count++
87
+ return count
88
+ },
89
+ },
90
+ ],
91
+ })
92
+ results.push(result)
93
+
94
+ return (
95
+ <div>
96
+ <div>data: {String(result[0].data ?? 'null')} </div>
97
+ <button onClick={() => result[0].refetch()}>refetch</button>
98
+ </div>
99
+ )
100
+ }
101
+
102
+ const rendered = renderWithClient(queryClient, <Page />)
103
+
104
+ await waitFor(() => rendered.getByText('data: 1'))
105
+
106
+ expect(results.length).toBe(2)
107
+ expect(results[0]).toMatchObject([{ data: undefined }])
108
+ expect(results[1]).toMatchObject([{ data: 1 }])
109
+
110
+ fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
111
+
112
+ await waitFor(() => rendered.getByText('data: 2'))
113
+
114
+ // only one render for data update, no render for isFetching transition
115
+ expect(results.length).toBe(3)
116
+
117
+ expect(results[2]).toMatchObject([{ data: 2 }])
118
+ })
119
+
74
120
  it('handles type parameter - tuple of tuples', async () => {
75
121
  const key1 = queryKey()
76
122
  const key2 = queryKey()
@@ -144,10 +190,6 @@ describe('useQueries', () => {
144
190
  expectTypeNotAny(a)
145
191
  return a.toLowerCase()
146
192
  },
147
- onSuccess: (a) => {
148
- expectType<string>(a)
149
- expectTypeNotAny(a)
150
- },
151
193
  placeholderData: 'string',
152
194
  // @ts-expect-error (initialData: string)
153
195
  initialData: 123,
@@ -160,14 +202,6 @@ describe('useQueries', () => {
160
202
  expectTypeNotAny(a)
161
203
  return parseInt(a)
162
204
  },
163
- onSuccess: (a) => {
164
- expectType<number>(a)
165
- expectTypeNotAny(a)
166
- },
167
- onError: (e) => {
168
- expectType<boolean>(e)
169
- expectTypeNotAny(e)
170
- },
171
205
  placeholderData: 'string',
172
206
  // @ts-expect-error (initialData: string)
173
207
  initialData: 123,
@@ -304,10 +338,6 @@ describe('useQueries', () => {
304
338
  expectTypeNotAny(a)
305
339
  return a.toLowerCase()
306
340
  },
307
- onSuccess: (a) => {
308
- expectType<string>(a)
309
- expectTypeNotAny(a)
310
- },
311
341
  placeholderData: 'string',
312
342
  // @ts-expect-error (initialData: string)
313
343
  initialData: 123,
@@ -320,14 +350,6 @@ describe('useQueries', () => {
320
350
  expectTypeNotAny(a)
321
351
  return parseInt(a)
322
352
  },
323
- onSuccess: (a) => {
324
- expectType<number>(a)
325
- expectTypeNotAny(a)
326
- },
327
- onError: (e) => {
328
- expectType<boolean>(e)
329
- expectTypeNotAny(e)
330
- },
331
353
  placeholderData: 'string',
332
354
  // @ts-expect-error (initialData: string)
333
355
  initialData: 123,
@@ -423,60 +445,38 @@ describe('useQueries', () => {
423
445
  ],
424
446
  })
425
447
 
426
- // select / onSuccess / onSettled params are "indirectly" enforced
448
+ // select params are "indirectly" enforced
427
449
  useQueries({
428
450
  queries: [
429
451
  // unfortunately TS will not suggest the type for you
430
452
  {
431
453
  queryKey: key1,
432
454
  queryFn: () => 'string',
433
- // @ts-expect-error (noImplicitAny)
434
- onSuccess: (a) => null,
435
- // @ts-expect-error (noImplicitAny)
436
- onSettled: (a) => null,
437
455
  },
438
456
  // however you can add a type to the callback
439
457
  {
440
458
  queryKey: key2,
441
459
  queryFn: () => 'string',
442
- onSuccess: (a: string) => {
443
- expectType<string>(a)
444
- expectTypeNotAny(a)
445
- },
446
- onSettled: (a: string | undefined) => {
447
- expectType<string | undefined>(a)
448
- expectTypeNotAny(a)
449
- },
450
460
  },
451
461
  // the type you do pass is enforced
452
462
  {
453
463
  queryKey: key3,
454
464
  queryFn: () => 'string',
455
- // @ts-expect-error (only accepts string)
456
- onSuccess: (a: number) => null,
457
465
  },
458
466
  {
459
467
  queryKey: key4,
460
468
  queryFn: () => 'string',
461
469
  select: (a: string) => parseInt(a),
462
- // @ts-expect-error (select is defined => only accepts number)
463
- onSuccess: (a: string) => null,
464
- onSettled: (a: number | undefined) => {
465
- expectType<number | undefined>(a)
466
- expectTypeNotAny(a)
467
- },
468
470
  },
469
471
  ],
470
472
  })
471
473
 
472
474
  // callbacks are also indirectly enforced with Array.map
473
475
  useQueries({
474
- // @ts-expect-error (onSuccess only accepts string)
475
476
  queries: Array(50).map((_, i) => ({
476
477
  queryKey: ['key', i] as const,
477
478
  queryFn: () => i + 10,
478
479
  select: (data: number) => data.toString(),
479
- onSuccess: (_data: number) => null,
480
480
  })),
481
481
  })
482
482
  useQueries({
@@ -484,7 +484,6 @@ describe('useQueries', () => {
484
484
  queryKey: ['key', i] as const,
485
485
  queryFn: () => i + 10,
486
486
  select: (data: number) => data.toString(),
487
- onSuccess: (_data: string) => null,
488
487
  })),
489
488
  })
490
489
 
@@ -494,32 +493,15 @@ describe('useQueries', () => {
494
493
  {
495
494
  queryKey: key1,
496
495
  queryFn: () => 'string',
497
- // @ts-expect-error (noImplicitAny)
498
- onSuccess: (a) => null,
499
- // @ts-expect-error (noImplicitAny)
500
- onSettled: (a) => null,
501
496
  },
502
497
  {
503
498
  queryKey: key2,
504
499
  queryFn: () => 'string',
505
- onSuccess: (a: string) => {
506
- expectType<string>(a)
507
- expectTypeNotAny(a)
508
- },
509
- onSettled: (a: string | undefined) => {
510
- expectType<string | undefined>(a)
511
- expectTypeNotAny(a)
512
- },
513
500
  },
514
501
  {
515
502
  queryKey: key4,
516
503
  queryFn: () => 'string',
517
504
  select: (a: string) => parseInt(a),
518
- onSuccess: (_a: number) => null,
519
- onSettled: (a: number | undefined) => {
520
- expectType<number | undefined>(a)
521
- expectTypeNotAny(a)
522
- },
523
505
  },
524
506
  ],
525
507
  })
@@ -533,12 +515,6 @@ describe('useQueries', () => {
533
515
  {
534
516
  queryKey: key1,
535
517
  queryFn: () => Promise.resolve('string'),
536
- onSuccess: (a: string) => {
537
- expectType<string>(a)
538
- expectTypeNotAny(a)
539
- },
540
- // @ts-expect-error (refuses to accept a Promise)
541
- onSettled: (a: Promise<string>) => null,
542
518
  },
543
519
  ],
544
520
  })
@@ -645,11 +621,10 @@ describe('useQueries', () => {
645
621
  queries: queries.map(
646
622
  // no need to type the mapped query
647
623
  (query) => {
648
- const { queryFn: fn, queryKey: key, onError: err } = query
624
+ const { queryFn: fn, queryKey: key } = query
649
625
  expectType<QueryFunction<TQueryFnData, TQueryKey> | undefined>(fn)
650
626
  return {
651
627
  queryKey: key,
652
- onError: err,
653
628
  queryFn: fn
654
629
  ? (ctx: QueryFunctionContext<TQueryKey>) => {
655
630
  expectType<TQueryKey>(ctx.queryKey)
@@ -715,7 +690,7 @@ describe('useQueries', () => {
715
690
  }
716
691
  })
717
692
 
718
- it("should throw error if in one of queries' queryFn throws and throwErrors is in use", async () => {
693
+ it("should throw error if in one of queries' queryFn throws and throwOnError is in use", async () => {
719
694
  const consoleMock = vi
720
695
  .spyOn(console, 'error')
721
696
  .mockImplementation(() => undefined)
@@ -732,14 +707,14 @@ describe('useQueries', () => {
732
707
  queryFn: () =>
733
708
  Promise.reject(
734
709
  new Error(
735
- 'this should not throw because throwErrors is not set',
710
+ 'this should not throw because throwOnError is not set',
736
711
  ),
737
712
  ),
738
713
  },
739
714
  {
740
715
  queryKey: key2,
741
716
  queryFn: () => Promise.reject(new Error('single query error')),
742
- throwErrors: true,
717
+ throwOnError: true,
743
718
  retry: false,
744
719
  },
745
720
  {
@@ -752,7 +727,7 @@ describe('useQueries', () => {
752
727
  Promise.reject(
753
728
  new Error('this should not throw because query#2 already did'),
754
729
  ),
755
- throwErrors: true,
730
+ throwOnError: true,
756
731
  retry: false,
757
732
  },
758
733
  ],
@@ -780,7 +755,7 @@ describe('useQueries', () => {
780
755
  consoleMock.mockRestore()
781
756
  })
782
757
 
783
- it("should throw error if in one of queries' queryFn throws and throwErrors function resolves to true", async () => {
758
+ it("should throw error if in one of queries' queryFn throws and throwOnError function resolves to true", async () => {
784
759
  const consoleMock = vi
785
760
  .spyOn(console, 'error')
786
761
  .mockImplementation(() => undefined)
@@ -797,10 +772,10 @@ describe('useQueries', () => {
797
772
  queryFn: () =>
798
773
  Promise.reject(
799
774
  new Error(
800
- 'this should not throw because throwErrors function resolves to false',
775
+ 'this should not throw because throwOnError function resolves to false',
801
776
  ),
802
777
  ),
803
- throwErrors: () => false,
778
+ throwOnError: () => false,
804
779
  retry: false,
805
780
  },
806
781
  {
@@ -810,7 +785,7 @@ describe('useQueries', () => {
810
785
  {
811
786
  queryKey: key3,
812
787
  queryFn: () => Promise.reject(new Error('single query error')),
813
- throwErrors: () => true,
788
+ throwOnError: () => true,
814
789
  retry: false,
815
790
  },
816
791
  {
@@ -819,7 +794,7 @@ describe('useQueries', () => {
819
794
  Promise.reject(
820
795
  new Error('this should not throw because query#3 already did'),
821
796
  ),
822
- throwErrors: true,
797
+ throwOnError: true,
823
798
  retry: false,
824
799
  },
825
800
  ],
@@ -873,4 +848,152 @@ describe('useQueries', () => {
873
848
 
874
849
  await waitFor(() => rendered.getByText('data: custom client'))
875
850
  })
851
+
852
+ it('should combine queries', async () => {
853
+ const key1 = queryKey()
854
+ const key2 = queryKey()
855
+
856
+ function Page() {
857
+ const queries = useQueries(
858
+ {
859
+ queries: [
860
+ {
861
+ queryKey: key1,
862
+ queryFn: () => Promise.resolve('first result'),
863
+ },
864
+ {
865
+ queryKey: key2,
866
+ queryFn: () => Promise.resolve('second result'),
867
+ },
868
+ ],
869
+ combine: (results) => {
870
+ return {
871
+ combined: true,
872
+ res: results.map((res) => res.data).join(','),
873
+ }
874
+ },
875
+ },
876
+ queryClient,
877
+ )
878
+
879
+ return (
880
+ <div>
881
+ <div>
882
+ data: {String(queries.combined)} {queries.res}
883
+ </div>
884
+ </div>
885
+ )
886
+ }
887
+
888
+ const rendered = render(<Page />)
889
+
890
+ await waitFor(() =>
891
+ rendered.getByText('data: true first result,second result'),
892
+ )
893
+ })
894
+
895
+ it('should track property access through combine function', async () => {
896
+ const key1 = queryKey()
897
+ const key2 = queryKey()
898
+ let count = 0
899
+ const results: Array<unknown> = []
900
+
901
+ function Page() {
902
+ const queries = useQueries(
903
+ {
904
+ queries: [
905
+ {
906
+ queryKey: key1,
907
+ queryFn: async () => {
908
+ await sleep(5)
909
+ return Promise.resolve('first result ' + count)
910
+ },
911
+ },
912
+ {
913
+ queryKey: key2,
914
+ queryFn: async () => {
915
+ await sleep(50)
916
+ return Promise.resolve('second result ' + count)
917
+ },
918
+ },
919
+ ],
920
+ combine: (queryResults) => {
921
+ return {
922
+ combined: true,
923
+ refetch: () => queryResults.forEach((res) => res.refetch()),
924
+ res: queryResults
925
+ .flatMap((res) => (res.data ? [res.data] : []))
926
+ .join(','),
927
+ }
928
+ },
929
+ },
930
+ queryClient,
931
+ )
932
+
933
+ results.push(queries)
934
+
935
+ return (
936
+ <div>
937
+ <div>
938
+ data: {String(queries.combined)} {queries.res}
939
+ </div>
940
+ <button onClick={() => queries.refetch()}>refetch</button>
941
+ </div>
942
+ )
943
+ }
944
+
945
+ const rendered = render(<Page />)
946
+
947
+ await waitFor(() =>
948
+ rendered.getByText('data: true first result 0,second result 0'),
949
+ )
950
+
951
+ expect(results.length).toBe(3)
952
+
953
+ expect(results[0]).toStrictEqual({
954
+ combined: true,
955
+ refetch: expect.any(Function),
956
+ res: '',
957
+ })
958
+
959
+ expect(results[1]).toStrictEqual({
960
+ combined: true,
961
+ refetch: expect.any(Function),
962
+ res: 'first result 0',
963
+ })
964
+
965
+ expect(results[2]).toStrictEqual({
966
+ combined: true,
967
+ refetch: expect.any(Function),
968
+ res: 'first result 0,second result 0',
969
+ })
970
+
971
+ count++
972
+
973
+ fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
974
+
975
+ await waitFor(() =>
976
+ rendered.getByText('data: true first result 1,second result 1'),
977
+ )
978
+
979
+ expect(results.length).toBe(5)
980
+
981
+ expect(results[3]).toStrictEqual({
982
+ combined: true,
983
+ refetch: expect.any(Function),
984
+ res: 'first result 1,second result 0',
985
+ })
986
+
987
+ expect(results[4]).toStrictEqual({
988
+ combined: true,
989
+ refetch: expect.any(Function),
990
+ res: 'first result 1,second result 1',
991
+ })
992
+
993
+ fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
994
+
995
+ await sleep(100)
996
+ // no further re-render because data didn't change
997
+ expect(results.length).toBe(5)
998
+ })
876
999
  })