@depup/tanstack__react-query 5.91.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/build/codemods/src/utils/index.cjs +208 -0
  4. package/build/codemods/src/utils/transformers/query-cache-transformer.cjs +124 -0
  5. package/build/codemods/src/utils/transformers/query-client-transformer.cjs +53 -0
  6. package/build/codemods/src/utils/transformers/use-query-like-transformer.cjs +38 -0
  7. package/build/codemods/src/v4/key-transformation.cjs +181 -0
  8. package/build/codemods/src/v4/replace-import-specifier.cjs +25 -0
  9. package/build/codemods/src/v4/utils/replacers/key-replacer.cjs +164 -0
  10. package/build/codemods/src/v5/is-loading/is-loading.cjs +244 -0
  11. package/build/codemods/src/v5/keep-previous-data/README.md +32 -0
  12. package/build/codemods/src/v5/keep-previous-data/keep-previous-data.cjs +271 -0
  13. package/build/codemods/src/v5/keep-previous-data/utils/already-has-placeholder-data-property.cjs +26 -0
  14. package/build/codemods/src/v5/remove-overloads/remove-overloads.cjs +58 -0
  15. package/build/codemods/src/v5/remove-overloads/transformers/filter-aware-usage-transformer.cjs +271 -0
  16. package/build/codemods/src/v5/remove-overloads/transformers/query-fn-aware-usage-transformer.cjs +185 -0
  17. package/build/codemods/src/v5/remove-overloads/utils/index.cjs +123 -0
  18. package/build/codemods/src/v5/remove-overloads/utils/unknown-usage-error.cjs +27 -0
  19. package/build/codemods/src/v5/rename-hydrate/rename-hydrate.cjs +55 -0
  20. package/build/codemods/src/v5/rename-properties/rename-properties.cjs +41 -0
  21. package/build/legacy/HydrationBoundary.cjs +91 -0
  22. package/build/legacy/HydrationBoundary.cjs.map +1 -0
  23. package/build/legacy/HydrationBoundary.d.cts +2 -0
  24. package/build/legacy/HydrationBoundary.d.ts +2 -0
  25. package/build/legacy/HydrationBoundary.js +57 -0
  26. package/build/legacy/HydrationBoundary.js.map +1 -0
  27. package/build/legacy/IsRestoringProvider.cjs +47 -0
  28. package/build/legacy/IsRestoringProvider.cjs.map +1 -0
  29. package/build/legacy/IsRestoringProvider.d.cts +2 -0
  30. package/build/legacy/IsRestoringProvider.d.ts +2 -0
  31. package/build/legacy/IsRestoringProvider.js +12 -0
  32. package/build/legacy/IsRestoringProvider.js.map +1 -0
  33. package/build/legacy/QueryClientProvider.cjs +72 -0
  34. package/build/legacy/QueryClientProvider.cjs.map +1 -0
  35. package/build/legacy/QueryClientProvider.d.cts +4 -0
  36. package/build/legacy/QueryClientProvider.d.ts +4 -0
  37. package/build/legacy/QueryClientProvider.js +36 -0
  38. package/build/legacy/QueryClientProvider.js.map +1 -0
  39. package/build/legacy/QueryErrorResetBoundary.cjs +67 -0
  40. package/build/legacy/QueryErrorResetBoundary.cjs.map +1 -0
  41. package/build/legacy/QueryErrorResetBoundary.d.cts +8 -0
  42. package/build/legacy/QueryErrorResetBoundary.d.ts +8 -0
  43. package/build/legacy/QueryErrorResetBoundary.js +32 -0
  44. package/build/legacy/QueryErrorResetBoundary.js.map +1 -0
  45. package/build/legacy/_tsup-dts-rollup.d.cts +993 -0
  46. package/build/legacy/_tsup-dts-rollup.d.ts +993 -0
  47. package/build/legacy/errorBoundaryUtils.cjs +69 -0
  48. package/build/legacy/errorBoundaryUtils.cjs.map +1 -0
  49. package/build/legacy/errorBoundaryUtils.d.cts +3 -0
  50. package/build/legacy/errorBoundaryUtils.d.ts +3 -0
  51. package/build/legacy/errorBoundaryUtils.js +33 -0
  52. package/build/legacy/errorBoundaryUtils.js.map +1 -0
  53. package/build/legacy/index.cjs +97 -0
  54. package/build/legacy/index.cjs.map +1 -0
  55. package/build/legacy/index.d.cts +206 -0
  56. package/build/legacy/index.d.ts +206 -0
  57. package/build/legacy/index.js +54 -0
  58. package/build/legacy/index.js.map +1 -0
  59. package/build/legacy/infiniteQueryOptions.cjs +33 -0
  60. package/build/legacy/infiniteQueryOptions.cjs.map +1 -0
  61. package/build/legacy/infiniteQueryOptions.d.cts +4 -0
  62. package/build/legacy/infiniteQueryOptions.d.ts +4 -0
  63. package/build/legacy/infiniteQueryOptions.js +8 -0
  64. package/build/legacy/infiniteQueryOptions.js.map +1 -0
  65. package/build/legacy/mutationOptions.cjs +33 -0
  66. package/build/legacy/mutationOptions.cjs.map +1 -0
  67. package/build/legacy/mutationOptions.d.cts +1 -0
  68. package/build/legacy/mutationOptions.d.ts +1 -0
  69. package/build/legacy/mutationOptions.js +8 -0
  70. package/build/legacy/mutationOptions.js.map +1 -0
  71. package/build/legacy/queryOptions.cjs +33 -0
  72. package/build/legacy/queryOptions.cjs.map +1 -0
  73. package/build/legacy/queryOptions.d.cts +4 -0
  74. package/build/legacy/queryOptions.d.ts +4 -0
  75. package/build/legacy/queryOptions.js +8 -0
  76. package/build/legacy/queryOptions.js.map +1 -0
  77. package/build/legacy/suspense.cjs +58 -0
  78. package/build/legacy/suspense.cjs.map +1 -0
  79. package/build/legacy/suspense.d.cts +5 -0
  80. package/build/legacy/suspense.d.ts +5 -0
  81. package/build/legacy/suspense.js +29 -0
  82. package/build/legacy/suspense.js.map +1 -0
  83. package/build/legacy/types.cjs +19 -0
  84. package/build/legacy/types.cjs.map +1 -0
  85. package/build/legacy/types.d.cts +24 -0
  86. package/build/legacy/types.d.ts +24 -0
  87. package/build/legacy/types.js +1 -0
  88. package/build/legacy/types.js.map +1 -0
  89. package/build/legacy/useBaseQuery.cjs +133 -0
  90. package/build/legacy/useBaseQuery.cjs.map +1 -0
  91. package/build/legacy/useBaseQuery.d.cts +1 -0
  92. package/build/legacy/useBaseQuery.d.ts +1 -0
  93. package/build/legacy/useBaseQuery.js +108 -0
  94. package/build/legacy/useBaseQuery.js.map +1 -0
  95. package/build/legacy/useInfiniteQuery.cjs +40 -0
  96. package/build/legacy/useInfiniteQuery.cjs.map +1 -0
  97. package/build/legacy/useInfiniteQuery.d.cts +1 -0
  98. package/build/legacy/useInfiniteQuery.d.ts +1 -0
  99. package/build/legacy/useInfiniteQuery.js +16 -0
  100. package/build/legacy/useInfiniteQuery.js.map +1 -0
  101. package/build/legacy/useIsFetching.cjs +56 -0
  102. package/build/legacy/useIsFetching.cjs.map +1 -0
  103. package/build/legacy/useIsFetching.d.cts +1 -0
  104. package/build/legacy/useIsFetching.d.ts +1 -0
  105. package/build/legacy/useIsFetching.js +22 -0
  106. package/build/legacy/useIsFetching.js.map +1 -0
  107. package/build/legacy/useMutation.cjs +74 -0
  108. package/build/legacy/useMutation.cjs.map +1 -0
  109. package/build/legacy/useMutation.d.cts +1 -0
  110. package/build/legacy/useMutation.d.ts +1 -0
  111. package/build/legacy/useMutation.js +45 -0
  112. package/build/legacy/useMutation.js.map +1 -0
  113. package/build/legacy/useMutationState.cjs +86 -0
  114. package/build/legacy/useMutationState.cjs.map +1 -0
  115. package/build/legacy/useMutationState.d.cts +2 -0
  116. package/build/legacy/useMutationState.d.ts +2 -0
  117. package/build/legacy/useMutationState.js +51 -0
  118. package/build/legacy/useMutationState.js.map +1 -0
  119. package/build/legacy/usePrefetchInfiniteQuery.cjs +37 -0
  120. package/build/legacy/usePrefetchInfiniteQuery.cjs.map +1 -0
  121. package/build/legacy/usePrefetchInfiniteQuery.d.cts +1 -0
  122. package/build/legacy/usePrefetchInfiniteQuery.d.ts +1 -0
  123. package/build/legacy/usePrefetchInfiniteQuery.js +12 -0
  124. package/build/legacy/usePrefetchInfiniteQuery.js.map +1 -0
  125. package/build/legacy/usePrefetchQuery.cjs +37 -0
  126. package/build/legacy/usePrefetchQuery.cjs.map +1 -0
  127. package/build/legacy/usePrefetchQuery.d.cts +1 -0
  128. package/build/legacy/usePrefetchQuery.d.ts +1 -0
  129. package/build/legacy/usePrefetchQuery.js +12 -0
  130. package/build/legacy/usePrefetchQuery.js.map +1 -0
  131. package/build/legacy/useQueries.cjs +128 -0
  132. package/build/legacy/useQueries.cjs.map +1 -0
  133. package/build/legacy/useQueries.d.cts +3 -0
  134. package/build/legacy/useQueries.d.ts +3 -0
  135. package/build/legacy/useQueries.js +107 -0
  136. package/build/legacy/useQueries.js.map +1 -0
  137. package/build/legacy/useQuery.cjs +36 -0
  138. package/build/legacy/useQuery.cjs.map +1 -0
  139. package/build/legacy/useQuery.d.cts +1 -0
  140. package/build/legacy/useQuery.d.ts +1 -0
  141. package/build/legacy/useQuery.js +12 -0
  142. package/build/legacy/useQuery.js.map +1 -0
  143. package/build/legacy/useSuspenseInfiniteQuery.cjs +51 -0
  144. package/build/legacy/useSuspenseInfiniteQuery.cjs.map +1 -0
  145. package/build/legacy/useSuspenseInfiniteQuery.d.cts +1 -0
  146. package/build/legacy/useSuspenseInfiniteQuery.d.ts +1 -0
  147. package/build/legacy/useSuspenseInfiniteQuery.js +27 -0
  148. package/build/legacy/useSuspenseInfiniteQuery.js.map +1 -0
  149. package/build/legacy/useSuspenseQueries.cjs +56 -0
  150. package/build/legacy/useSuspenseQueries.cjs.map +1 -0
  151. package/build/legacy/useSuspenseQueries.d.cts +3 -0
  152. package/build/legacy/useSuspenseQueries.d.ts +3 -0
  153. package/build/legacy/useSuspenseQueries.js +32 -0
  154. package/build/legacy/useSuspenseQueries.js.map +1 -0
  155. package/build/legacy/useSuspenseQuery.cjs +52 -0
  156. package/build/legacy/useSuspenseQuery.cjs.map +1 -0
  157. package/build/legacy/useSuspenseQuery.d.cts +1 -0
  158. package/build/legacy/useSuspenseQuery.d.ts +1 -0
  159. package/build/legacy/useSuspenseQuery.js +28 -0
  160. package/build/legacy/useSuspenseQuery.js.map +1 -0
  161. package/build/modern/HydrationBoundary.cjs +91 -0
  162. package/build/modern/HydrationBoundary.cjs.map +1 -0
  163. package/build/modern/HydrationBoundary.d.cts +2 -0
  164. package/build/modern/HydrationBoundary.d.ts +2 -0
  165. package/build/modern/HydrationBoundary.js +57 -0
  166. package/build/modern/HydrationBoundary.js.map +1 -0
  167. package/build/modern/IsRestoringProvider.cjs +47 -0
  168. package/build/modern/IsRestoringProvider.cjs.map +1 -0
  169. package/build/modern/IsRestoringProvider.d.cts +2 -0
  170. package/build/modern/IsRestoringProvider.d.ts +2 -0
  171. package/build/modern/IsRestoringProvider.js +12 -0
  172. package/build/modern/IsRestoringProvider.js.map +1 -0
  173. package/build/modern/QueryClientProvider.cjs +72 -0
  174. package/build/modern/QueryClientProvider.cjs.map +1 -0
  175. package/build/modern/QueryClientProvider.d.cts +4 -0
  176. package/build/modern/QueryClientProvider.d.ts +4 -0
  177. package/build/modern/QueryClientProvider.js +36 -0
  178. package/build/modern/QueryClientProvider.js.map +1 -0
  179. package/build/modern/QueryErrorResetBoundary.cjs +67 -0
  180. package/build/modern/QueryErrorResetBoundary.cjs.map +1 -0
  181. package/build/modern/QueryErrorResetBoundary.d.cts +8 -0
  182. package/build/modern/QueryErrorResetBoundary.d.ts +8 -0
  183. package/build/modern/QueryErrorResetBoundary.js +32 -0
  184. package/build/modern/QueryErrorResetBoundary.js.map +1 -0
  185. package/build/modern/_tsup-dts-rollup.d.cts +993 -0
  186. package/build/modern/_tsup-dts-rollup.d.ts +993 -0
  187. package/build/modern/errorBoundaryUtils.cjs +69 -0
  188. package/build/modern/errorBoundaryUtils.cjs.map +1 -0
  189. package/build/modern/errorBoundaryUtils.d.cts +3 -0
  190. package/build/modern/errorBoundaryUtils.d.ts +3 -0
  191. package/build/modern/errorBoundaryUtils.js +33 -0
  192. package/build/modern/errorBoundaryUtils.js.map +1 -0
  193. package/build/modern/index.cjs +97 -0
  194. package/build/modern/index.cjs.map +1 -0
  195. package/build/modern/index.d.cts +206 -0
  196. package/build/modern/index.d.ts +206 -0
  197. package/build/modern/index.js +54 -0
  198. package/build/modern/index.js.map +1 -0
  199. package/build/modern/infiniteQueryOptions.cjs +33 -0
  200. package/build/modern/infiniteQueryOptions.cjs.map +1 -0
  201. package/build/modern/infiniteQueryOptions.d.cts +4 -0
  202. package/build/modern/infiniteQueryOptions.d.ts +4 -0
  203. package/build/modern/infiniteQueryOptions.js +8 -0
  204. package/build/modern/infiniteQueryOptions.js.map +1 -0
  205. package/build/modern/mutationOptions.cjs +33 -0
  206. package/build/modern/mutationOptions.cjs.map +1 -0
  207. package/build/modern/mutationOptions.d.cts +1 -0
  208. package/build/modern/mutationOptions.d.ts +1 -0
  209. package/build/modern/mutationOptions.js +8 -0
  210. package/build/modern/mutationOptions.js.map +1 -0
  211. package/build/modern/queryOptions.cjs +33 -0
  212. package/build/modern/queryOptions.cjs.map +1 -0
  213. package/build/modern/queryOptions.d.cts +4 -0
  214. package/build/modern/queryOptions.d.ts +4 -0
  215. package/build/modern/queryOptions.js +8 -0
  216. package/build/modern/queryOptions.js.map +1 -0
  217. package/build/modern/suspense.cjs +58 -0
  218. package/build/modern/suspense.cjs.map +1 -0
  219. package/build/modern/suspense.d.cts +5 -0
  220. package/build/modern/suspense.d.ts +5 -0
  221. package/build/modern/suspense.js +29 -0
  222. package/build/modern/suspense.js.map +1 -0
  223. package/build/modern/types.cjs +19 -0
  224. package/build/modern/types.cjs.map +1 -0
  225. package/build/modern/types.d.cts +24 -0
  226. package/build/modern/types.d.ts +24 -0
  227. package/build/modern/types.js +1 -0
  228. package/build/modern/types.js.map +1 -0
  229. package/build/modern/useBaseQuery.cjs +130 -0
  230. package/build/modern/useBaseQuery.cjs.map +1 -0
  231. package/build/modern/useBaseQuery.d.cts +1 -0
  232. package/build/modern/useBaseQuery.d.ts +1 -0
  233. package/build/modern/useBaseQuery.js +105 -0
  234. package/build/modern/useBaseQuery.js.map +1 -0
  235. package/build/modern/useInfiniteQuery.cjs +40 -0
  236. package/build/modern/useInfiniteQuery.cjs.map +1 -0
  237. package/build/modern/useInfiniteQuery.d.cts +1 -0
  238. package/build/modern/useInfiniteQuery.d.ts +1 -0
  239. package/build/modern/useInfiniteQuery.js +16 -0
  240. package/build/modern/useInfiniteQuery.js.map +1 -0
  241. package/build/modern/useIsFetching.cjs +56 -0
  242. package/build/modern/useIsFetching.cjs.map +1 -0
  243. package/build/modern/useIsFetching.d.cts +1 -0
  244. package/build/modern/useIsFetching.d.ts +1 -0
  245. package/build/modern/useIsFetching.js +22 -0
  246. package/build/modern/useIsFetching.js.map +1 -0
  247. package/build/modern/useMutation.cjs +74 -0
  248. package/build/modern/useMutation.cjs.map +1 -0
  249. package/build/modern/useMutation.d.cts +1 -0
  250. package/build/modern/useMutation.d.ts +1 -0
  251. package/build/modern/useMutation.js +45 -0
  252. package/build/modern/useMutation.js.map +1 -0
  253. package/build/modern/useMutationState.cjs +86 -0
  254. package/build/modern/useMutationState.cjs.map +1 -0
  255. package/build/modern/useMutationState.d.cts +2 -0
  256. package/build/modern/useMutationState.d.ts +2 -0
  257. package/build/modern/useMutationState.js +51 -0
  258. package/build/modern/useMutationState.js.map +1 -0
  259. package/build/modern/usePrefetchInfiniteQuery.cjs +37 -0
  260. package/build/modern/usePrefetchInfiniteQuery.cjs.map +1 -0
  261. package/build/modern/usePrefetchInfiniteQuery.d.cts +1 -0
  262. package/build/modern/usePrefetchInfiniteQuery.d.ts +1 -0
  263. package/build/modern/usePrefetchInfiniteQuery.js +12 -0
  264. package/build/modern/usePrefetchInfiniteQuery.js.map +1 -0
  265. package/build/modern/usePrefetchQuery.cjs +37 -0
  266. package/build/modern/usePrefetchQuery.cjs.map +1 -0
  267. package/build/modern/usePrefetchQuery.d.cts +1 -0
  268. package/build/modern/usePrefetchQuery.d.ts +1 -0
  269. package/build/modern/usePrefetchQuery.js +12 -0
  270. package/build/modern/usePrefetchQuery.js.map +1 -0
  271. package/build/modern/useQueries.cjs +128 -0
  272. package/build/modern/useQueries.cjs.map +1 -0
  273. package/build/modern/useQueries.d.cts +3 -0
  274. package/build/modern/useQueries.d.ts +3 -0
  275. package/build/modern/useQueries.js +107 -0
  276. package/build/modern/useQueries.js.map +1 -0
  277. package/build/modern/useQuery.cjs +36 -0
  278. package/build/modern/useQuery.cjs.map +1 -0
  279. package/build/modern/useQuery.d.cts +1 -0
  280. package/build/modern/useQuery.d.ts +1 -0
  281. package/build/modern/useQuery.js +12 -0
  282. package/build/modern/useQuery.js.map +1 -0
  283. package/build/modern/useSuspenseInfiniteQuery.cjs +51 -0
  284. package/build/modern/useSuspenseInfiniteQuery.cjs.map +1 -0
  285. package/build/modern/useSuspenseInfiniteQuery.d.cts +1 -0
  286. package/build/modern/useSuspenseInfiniteQuery.d.ts +1 -0
  287. package/build/modern/useSuspenseInfiniteQuery.js +27 -0
  288. package/build/modern/useSuspenseInfiniteQuery.js.map +1 -0
  289. package/build/modern/useSuspenseQueries.cjs +56 -0
  290. package/build/modern/useSuspenseQueries.cjs.map +1 -0
  291. package/build/modern/useSuspenseQueries.d.cts +3 -0
  292. package/build/modern/useSuspenseQueries.d.ts +3 -0
  293. package/build/modern/useSuspenseQueries.js +32 -0
  294. package/build/modern/useSuspenseQueries.js.map +1 -0
  295. package/build/modern/useSuspenseQuery.cjs +52 -0
  296. package/build/modern/useSuspenseQuery.cjs.map +1 -0
  297. package/build/modern/useSuspenseQuery.d.cts +1 -0
  298. package/build/modern/useSuspenseQuery.d.ts +1 -0
  299. package/build/modern/useSuspenseQuery.js +28 -0
  300. package/build/modern/useSuspenseQuery.js.map +1 -0
  301. package/build/query-codemods/eslint.config.js +18 -0
  302. package/build/query-codemods/package.json +38 -0
  303. package/build/query-codemods/root.eslint.config.js +64 -0
  304. package/build/query-codemods/tsconfig.json +8 -0
  305. package/build/query-codemods/vite.config.ts +30 -0
  306. package/changes.json +5 -0
  307. package/package.json +104 -0
  308. package/src/HydrationBoundary.tsx +111 -0
  309. package/src/IsRestoringProvider.ts +7 -0
  310. package/src/QueryClientProvider.tsx +45 -0
  311. package/src/QueryErrorResetBoundary.tsx +56 -0
  312. package/src/errorBoundaryUtils.ts +82 -0
  313. package/src/index.ts +56 -0
  314. package/src/infiniteQueryOptions.ts +149 -0
  315. package/src/mutationOptions.ts +41 -0
  316. package/src/queryOptions.ts +87 -0
  317. package/src/suspense.ts +80 -0
  318. package/src/types.ts +242 -0
  319. package/src/useBaseQuery.ts +170 -0
  320. package/src/useInfiniteQuery.ts +81 -0
  321. package/src/useIsFetching.ts +24 -0
  322. package/src/useMutation.ts +69 -0
  323. package/src/useMutationState.ts +75 -0
  324. package/src/usePrefetchInfiniteQuery.tsx +30 -0
  325. package/src/usePrefetchQuery.tsx +19 -0
  326. package/src/useQueries.ts +328 -0
  327. package/src/useQuery.ts +52 -0
  328. package/src/useSuspenseInfiniteQuery.ts +50 -0
  329. package/src/useSuspenseQueries.ts +211 -0
  330. package/src/useSuspenseQuery.ts +34 -0
@@ -0,0 +1,45 @@
1
+ "use client";
2
+
3
+ // src/useMutation.ts
4
+ import * as React from "react";
5
+ import {
6
+ MutationObserver,
7
+ noop,
8
+ notifyManager,
9
+ shouldThrowError
10
+ } from "@tanstack/query-core";
11
+ import { useQueryClient } from "./QueryClientProvider.js";
12
+ function useMutation(options, queryClient) {
13
+ const client = useQueryClient(queryClient);
14
+ const [observer] = React.useState(
15
+ () => new MutationObserver(
16
+ client,
17
+ options
18
+ )
19
+ );
20
+ React.useEffect(() => {
21
+ observer.setOptions(options);
22
+ }, [observer, options]);
23
+ const result = React.useSyncExternalStore(
24
+ React.useCallback(
25
+ (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),
26
+ [observer]
27
+ ),
28
+ () => observer.getCurrentResult(),
29
+ () => observer.getCurrentResult()
30
+ );
31
+ const mutate = React.useCallback(
32
+ (variables, mutateOptions) => {
33
+ observer.mutate(variables, mutateOptions).catch(noop);
34
+ },
35
+ [observer]
36
+ );
37
+ if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {
38
+ throw result.error;
39
+ }
40
+ return { ...result, mutate, mutateAsync: result.mutate };
41
+ }
42
+ export {
43
+ useMutation
44
+ };
45
+ //# sourceMappingURL=useMutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport type { DefaultError, QueryClient } from '@tanstack/query-core'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TOnMutateResult = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TOnMutateResult> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TOnMutateResult>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TOnMutateResult>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwOnError, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n"],"mappings":";;;AACA,YAAY,WAAW;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAUxB,SAAS,YAMd,SACA,aAC+D;AAC/D,QAAM,SAAS,eAAe,WAAW;AAEzC,QAAM,CAAC,QAAQ,IAAU;AAAA,IACvB,MACE,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACJ;AAEA,EAAM,gBAAU,MAAM;AACpB,aAAS,WAAW,OAAO;AAAA,EAC7B,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,QAAM,SAAe;AAAA,IACb;AAAA,MACJ,CAAC,kBACC,SAAS,UAAU,cAAc,WAAW,aAAa,CAAC;AAAA,MAC5D,CAAC,QAAQ;AAAA,IACX;AAAA,IACA,MAAM,SAAS,iBAAiB;AAAA,IAChC,MAAM,SAAS,iBAAiB;AAAA,EAClC;AAEA,QAAM,SAAe;AAAA,IAGnB,CAAC,WAAW,kBAAkB;AAC5B,eAAS,OAAO,WAAW,aAAa,EAAE,MAAM,IAAI;AAAA,IACtD;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,MACE,OAAO,SACP,iBAAiB,SAAS,QAAQ,cAAc,CAAC,OAAO,KAAK,CAAC,GAC9D;AACA,UAAM,OAAO;AAAA,EACf;AAEA,SAAO,EAAE,GAAG,QAAQ,QAAQ,aAAa,OAAO,OAAO;AACzD;","names":[]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/useMutationState.ts
32
+ var useMutationState_exports = {};
33
+ __export(useMutationState_exports, {
34
+ useIsMutating: () => useIsMutating,
35
+ useMutationState: () => useMutationState
36
+ });
37
+ module.exports = __toCommonJS(useMutationState_exports);
38
+ var React = __toESM(require("react"), 1);
39
+ var import_query_core = require("@tanstack/query-core");
40
+ var import_QueryClientProvider = require("./QueryClientProvider.cjs");
41
+ function useIsMutating(filters, queryClient) {
42
+ const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
43
+ return useMutationState(
44
+ { filters: { ...filters, status: "pending" } },
45
+ client
46
+ ).length;
47
+ }
48
+ function getResult(mutationCache, options) {
49
+ return mutationCache.findAll(options.filters).map(
50
+ (mutation) => options.select ? options.select(mutation) : mutation.state
51
+ );
52
+ }
53
+ function useMutationState(options = {}, queryClient) {
54
+ const mutationCache = (0, import_QueryClientProvider.useQueryClient)(queryClient).getMutationCache();
55
+ const optionsRef = React.useRef(options);
56
+ const result = React.useRef(null);
57
+ if (result.current === null) {
58
+ result.current = getResult(mutationCache, options);
59
+ }
60
+ React.useEffect(() => {
61
+ optionsRef.current = options;
62
+ });
63
+ return React.useSyncExternalStore(
64
+ React.useCallback(
65
+ (onStoreChange) => mutationCache.subscribe(() => {
66
+ const nextResult = (0, import_query_core.replaceEqualDeep)(
67
+ result.current,
68
+ getResult(mutationCache, optionsRef.current)
69
+ );
70
+ if (result.current !== nextResult) {
71
+ result.current = nextResult;
72
+ import_query_core.notifyManager.schedule(onStoreChange);
73
+ }
74
+ }),
75
+ [mutationCache]
76
+ ),
77
+ () => result.current,
78
+ () => result.current
79
+ );
80
+ }
81
+ // Annotate the CommonJS export names for ESM import in node:
82
+ 0 && (module.exports = {
83
+ useIsMutating,
84
+ useMutationState
85
+ });
86
+ //# sourceMappingURL=useMutationState.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n Mutation,\n MutationCache,\n MutationFilters,\n MutationState,\n QueryClient,\n} from '@tanstack/query-core'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult = MutationState> = {\n filters?: MutationFilters\n select?: (mutation: Mutation) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select ? options.select(mutation) : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = MutationState>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>(null)\n if (result.current === null) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,YAAuB;AAEvB,wBAAgD;AAChD,iCAA+B;AASxB,SAAS,cACd,SACA,aACQ;AACR,QAAM,aAAS,2CAAe,WAAW;AACzC,SAAO;AAAA,IACL,EAAE,SAAS,EAAE,GAAG,SAAS,QAAQ,UAAU,EAAE;AAAA,IAC7C;AAAA,EACF,EAAE;AACJ;AAOA,SAAS,UACP,eACA,SACgB;AAChB,SAAO,cACJ,QAAQ,QAAQ,OAAO,EACvB;AAAA,IACC,CAAC,aACE,QAAQ,SAAS,QAAQ,OAAO,QAAQ,IAAI,SAAS;AAAA,EAC1D;AACJ;AAEO,SAAS,iBACd,UAAyC,CAAC,GAC1C,aACgB;AAChB,QAAM,oBAAgB,2CAAe,WAAW,EAAE,iBAAiB;AACnE,QAAM,aAAmB,aAAO,OAAO;AACvC,QAAM,SAAe,aAAuB,IAAI;AAChD,MAAI,OAAO,YAAY,MAAM;AAC3B,WAAO,UAAU,UAAU,eAAe,OAAO;AAAA,EACnD;AAEA,EAAM,gBAAU,MAAM;AACpB,eAAW,UAAU;AAAA,EACvB,CAAC;AAED,SAAa;AAAA,IACL;AAAA,MACJ,CAAC,kBACC,cAAc,UAAU,MAAM;AAC5B,cAAM,iBAAa;AAAA,UACjB,OAAO;AAAA,UACP,UAAU,eAAe,WAAW,OAAO;AAAA,QAC7C;AACA,YAAI,OAAO,YAAY,YAAY;AACjC,iBAAO,UAAU;AACjB,0CAAc,SAAS,aAAa;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,MACH,CAAC,aAAa;AAAA,IAChB;AAAA,IACA,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,EACf;AACF;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { useIsMutating_alias_1 as useIsMutating } from './_tsup-dts-rollup.cjs';
2
+ export { useMutationState_alias_1 as useMutationState } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1,2 @@
1
+ export { useIsMutating_alias_1 as useIsMutating } from './_tsup-dts-rollup.js';
2
+ export { useMutationState_alias_1 as useMutationState } from './_tsup-dts-rollup.js';
@@ -0,0 +1,51 @@
1
+ "use client";
2
+
3
+ // src/useMutationState.ts
4
+ import * as React from "react";
5
+ import { notifyManager, replaceEqualDeep } from "@tanstack/query-core";
6
+ import { useQueryClient } from "./QueryClientProvider.js";
7
+ function useIsMutating(filters, queryClient) {
8
+ const client = useQueryClient(queryClient);
9
+ return useMutationState(
10
+ { filters: { ...filters, status: "pending" } },
11
+ client
12
+ ).length;
13
+ }
14
+ function getResult(mutationCache, options) {
15
+ return mutationCache.findAll(options.filters).map(
16
+ (mutation) => options.select ? options.select(mutation) : mutation.state
17
+ );
18
+ }
19
+ function useMutationState(options = {}, queryClient) {
20
+ const mutationCache = useQueryClient(queryClient).getMutationCache();
21
+ const optionsRef = React.useRef(options);
22
+ const result = React.useRef(null);
23
+ if (result.current === null) {
24
+ result.current = getResult(mutationCache, options);
25
+ }
26
+ React.useEffect(() => {
27
+ optionsRef.current = options;
28
+ });
29
+ return React.useSyncExternalStore(
30
+ React.useCallback(
31
+ (onStoreChange) => mutationCache.subscribe(() => {
32
+ const nextResult = replaceEqualDeep(
33
+ result.current,
34
+ getResult(mutationCache, optionsRef.current)
35
+ );
36
+ if (result.current !== nextResult) {
37
+ result.current = nextResult;
38
+ notifyManager.schedule(onStoreChange);
39
+ }
40
+ }),
41
+ [mutationCache]
42
+ ),
43
+ () => result.current,
44
+ () => result.current
45
+ );
46
+ }
47
+ export {
48
+ useIsMutating,
49
+ useMutationState
50
+ };
51
+ //# sourceMappingURL=useMutationState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/useMutationState.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n Mutation,\n MutationCache,\n MutationFilters,\n MutationState,\n QueryClient,\n} from '@tanstack/query-core'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult = MutationState> = {\n filters?: MutationFilters\n select?: (mutation: Mutation) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select ? options.select(mutation) : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = MutationState>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>(null)\n if (result.current === null) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"mappings":";;;AACA,YAAY,WAAW;AAEvB,SAAS,eAAe,wBAAwB;AAChD,SAAS,sBAAsB;AASxB,SAAS,cACd,SACA,aACQ;AACR,QAAM,SAAS,eAAe,WAAW;AACzC,SAAO;AAAA,IACL,EAAE,SAAS,EAAE,GAAG,SAAS,QAAQ,UAAU,EAAE;AAAA,IAC7C;AAAA,EACF,EAAE;AACJ;AAOA,SAAS,UACP,eACA,SACgB;AAChB,SAAO,cACJ,QAAQ,QAAQ,OAAO,EACvB;AAAA,IACC,CAAC,aACE,QAAQ,SAAS,QAAQ,OAAO,QAAQ,IAAI,SAAS;AAAA,EAC1D;AACJ;AAEO,SAAS,iBACd,UAAyC,CAAC,GAC1C,aACgB;AAChB,QAAM,gBAAgB,eAAe,WAAW,EAAE,iBAAiB;AACnE,QAAM,aAAmB,aAAO,OAAO;AACvC,QAAM,SAAe,aAAuB,IAAI;AAChD,MAAI,OAAO,YAAY,MAAM;AAC3B,WAAO,UAAU,UAAU,eAAe,OAAO;AAAA,EACnD;AAEA,EAAM,gBAAU,MAAM;AACpB,eAAW,UAAU;AAAA,EACvB,CAAC;AAED,SAAa;AAAA,IACL;AAAA,MACJ,CAAC,kBACC,cAAc,UAAU,MAAM;AAC5B,cAAM,aAAa;AAAA,UACjB,OAAO;AAAA,UACP,UAAU,eAAe,WAAW,OAAO;AAAA,QAC7C;AACA,YAAI,OAAO,YAAY,YAAY;AACjC,iBAAO,UAAU;AACjB,wBAAc,SAAS,aAAa;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,MACH,CAAC,aAAa;AAAA,IAChB;AAAA,IACA,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,EACf;AACF;","names":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/usePrefetchInfiniteQuery.tsx
21
+ var usePrefetchInfiniteQuery_exports = {};
22
+ __export(usePrefetchInfiniteQuery_exports, {
23
+ usePrefetchInfiniteQuery: () => usePrefetchInfiniteQuery
24
+ });
25
+ module.exports = __toCommonJS(usePrefetchInfiniteQuery_exports);
26
+ var import_QueryClientProvider = require("./QueryClientProvider.cjs");
27
+ function usePrefetchInfiniteQuery(options, queryClient) {
28
+ const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
29
+ if (!client.getQueryState(options.queryKey)) {
30
+ client.prefetchInfiniteQuery(options);
31
+ }
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ usePrefetchInfiniteQuery
36
+ });
37
+ //# sourceMappingURL=usePrefetchInfiniteQuery.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/usePrefetchInfiniteQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type {\n DefaultError,\n FetchInfiniteQueryOptions,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\n\nexport function usePrefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAA+B;AAQxB,SAAS,yBAOd,SAOA,aACA;AACA,QAAM,aAAS,2CAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,sBAAsB,OAAO;AAAA,EACtC;AACF;","names":[]}
@@ -0,0 +1 @@
1
+ export { usePrefetchInfiniteQuery_alias_1 as usePrefetchInfiniteQuery } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1 @@
1
+ export { usePrefetchInfiniteQuery_alias_1 as usePrefetchInfiniteQuery } from './_tsup-dts-rollup.js';
@@ -0,0 +1,12 @@
1
+ // src/usePrefetchInfiniteQuery.tsx
2
+ import { useQueryClient } from "./QueryClientProvider.js";
3
+ function usePrefetchInfiniteQuery(options, queryClient) {
4
+ const client = useQueryClient(queryClient);
5
+ if (!client.getQueryState(options.queryKey)) {
6
+ client.prefetchInfiniteQuery(options);
7
+ }
8
+ }
9
+ export {
10
+ usePrefetchInfiniteQuery
11
+ };
12
+ //# sourceMappingURL=usePrefetchInfiniteQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/usePrefetchInfiniteQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type {\n DefaultError,\n FetchInfiniteQueryOptions,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\n\nexport function usePrefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options)\n }\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAQxB,SAAS,yBAOd,SAOA,aACA;AACA,QAAM,SAAS,eAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,sBAAsB,OAAO;AAAA,EACtC;AACF;","names":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/usePrefetchQuery.tsx
21
+ var usePrefetchQuery_exports = {};
22
+ __export(usePrefetchQuery_exports, {
23
+ usePrefetchQuery: () => usePrefetchQuery
24
+ });
25
+ module.exports = __toCommonJS(usePrefetchQuery_exports);
26
+ var import_QueryClientProvider = require("./QueryClientProvider.cjs");
27
+ function usePrefetchQuery(options, queryClient) {
28
+ const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
29
+ if (!client.getQueryState(options.queryKey)) {
30
+ client.prefetchQuery(options);
31
+ }
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ usePrefetchQuery
36
+ });
37
+ //# sourceMappingURL=usePrefetchQuery.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/usePrefetchQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\nimport type { UsePrefetchQueryOptions } from './types'\n\nexport function usePrefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UsePrefetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAA+B;AAIxB,SAAS,iBAMd,SACA,aACA;AACA,QAAM,aAAS,2CAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,cAAc,OAAO;AAAA,EAC9B;AACF;","names":[]}
@@ -0,0 +1 @@
1
+ export { usePrefetchQuery_alias_1 as usePrefetchQuery } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1 @@
1
+ export { usePrefetchQuery_alias_1 as usePrefetchQuery } from './_tsup-dts-rollup.js';
@@ -0,0 +1,12 @@
1
+ // src/usePrefetchQuery.tsx
2
+ import { useQueryClient } from "./QueryClientProvider.js";
3
+ function usePrefetchQuery(options, queryClient) {
4
+ const client = useQueryClient(queryClient);
5
+ if (!client.getQueryState(options.queryKey)) {
6
+ client.prefetchQuery(options);
7
+ }
8
+ }
9
+ export {
10
+ usePrefetchQuery
11
+ };
12
+ //# sourceMappingURL=usePrefetchQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/usePrefetchQuery.tsx"],"sourcesContent":["import { useQueryClient } from './QueryClientProvider'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\nimport type { UsePrefetchQueryOptions } from './types'\n\nexport function usePrefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UsePrefetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n) {\n const client = useQueryClient(queryClient)\n\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options)\n }\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAIxB,SAAS,iBAMd,SACA,aACA;AACA,QAAM,SAAS,eAAe,WAAW;AAEzC,MAAI,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;AAC3C,WAAO,cAAc,OAAO;AAAA,EAC9B;AACF;","names":[]}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/useQueries.ts
32
+ var useQueries_exports = {};
33
+ __export(useQueries_exports, {
34
+ useQueries: () => useQueries
35
+ });
36
+ module.exports = __toCommonJS(useQueries_exports);
37
+ var React = __toESM(require("react"), 1);
38
+ var import_query_core = require("@tanstack/query-core");
39
+ var import_QueryClientProvider = require("./QueryClientProvider.cjs");
40
+ var import_IsRestoringProvider = require("./IsRestoringProvider.cjs");
41
+ var import_QueryErrorResetBoundary = require("./QueryErrorResetBoundary.cjs");
42
+ var import_errorBoundaryUtils = require("./errorBoundaryUtils.cjs");
43
+ var import_suspense = require("./suspense.cjs");
44
+ function useQueries({
45
+ queries,
46
+ ...options
47
+ }, queryClient) {
48
+ const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
49
+ const isRestoring = (0, import_IsRestoringProvider.useIsRestoring)();
50
+ const errorResetBoundary = (0, import_QueryErrorResetBoundary.useQueryErrorResetBoundary)();
51
+ const defaultedQueries = React.useMemo(
52
+ () => queries.map((opts) => {
53
+ const defaultedOptions = client.defaultQueryOptions(
54
+ opts
55
+ );
56
+ defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
57
+ return defaultedOptions;
58
+ }),
59
+ [queries, client, isRestoring]
60
+ );
61
+ defaultedQueries.forEach((queryOptions) => {
62
+ (0, import_suspense.ensureSuspenseTimers)(queryOptions);
63
+ const query = client.getQueryCache().get(queryOptions.queryHash);
64
+ (0, import_errorBoundaryUtils.ensurePreventErrorBoundaryRetry)(queryOptions, errorResetBoundary, query);
65
+ });
66
+ (0, import_errorBoundaryUtils.useClearResetErrorBoundary)(errorResetBoundary);
67
+ const [observer] = React.useState(
68
+ () => new import_query_core.QueriesObserver(
69
+ client,
70
+ defaultedQueries,
71
+ options
72
+ )
73
+ );
74
+ const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(
75
+ defaultedQueries,
76
+ options.combine
77
+ );
78
+ const shouldSubscribe = !isRestoring && options.subscribed !== false;
79
+ React.useSyncExternalStore(
80
+ React.useCallback(
81
+ (onStoreChange) => shouldSubscribe ? observer.subscribe(import_query_core.notifyManager.batchCalls(onStoreChange)) : import_query_core.noop,
82
+ [observer, shouldSubscribe]
83
+ ),
84
+ () => observer.getCurrentResult(),
85
+ () => observer.getCurrentResult()
86
+ );
87
+ React.useEffect(() => {
88
+ observer.setQueries(
89
+ defaultedQueries,
90
+ options
91
+ );
92
+ }, [defaultedQueries, options, observer]);
93
+ const shouldAtLeastOneSuspend = optimisticResult.some(
94
+ (result, index) => (0, import_suspense.shouldSuspend)(defaultedQueries[index], result)
95
+ );
96
+ const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {
97
+ const opts = defaultedQueries[index];
98
+ if (opts && (0, import_suspense.shouldSuspend)(opts, result)) {
99
+ const queryObserver = new import_query_core.QueryObserver(client, opts);
100
+ return (0, import_suspense.fetchOptimistic)(opts, queryObserver, errorResetBoundary);
101
+ }
102
+ return [];
103
+ }) : [];
104
+ if (suspensePromises.length > 0) {
105
+ throw Promise.all(suspensePromises);
106
+ }
107
+ const firstSingleResultWhichShouldThrow = optimisticResult.find(
108
+ (result, index) => {
109
+ const query = defaultedQueries[index];
110
+ return query && (0, import_errorBoundaryUtils.getHasError)({
111
+ result,
112
+ errorResetBoundary,
113
+ throwOnError: query.throwOnError,
114
+ query: client.getQueryCache().get(query.queryHash),
115
+ suspense: query.suspense
116
+ });
117
+ }
118
+ );
119
+ if (firstSingleResultWhichShouldThrow == null ? void 0 : firstSingleResultWhichShouldThrow.error) {
120
+ throw firstSingleResultWhichShouldThrow.error;
121
+ }
122
+ return getCombinedResult(trackResult());
123
+ }
124
+ // Annotate the CommonJS export names for ESM import in node:
125
+ 0 && (module.exports = {
126
+ useQueries
127
+ });
128
+ //# sourceMappingURL=useQueries.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/useQueries.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport { useIsRestoring } from './IsRestoringProvider'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n} from './suspense'\nimport type {\n DefinedUseQueryResult,\n UseQueryOptions,\n UseQueryResult,\n} from './types'\nimport type {\n DefaultError,\n OmitKeyof,\n QueriesObserverOptions,\n QueriesPlaceholderDataFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n ThrowOnError,\n} from '@tanstack/query-core'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function always gets undefined passed\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = OmitKeyof<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData' | 'subscribed'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\n// Widen the type of the symbol to enable type inference even if skipToken is not immutable.\ntype SkipTokenForUseQueries = symbol\n\ntype GetUseQueryOptionsForUseQueries<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, infer TQueryKey>\n | SkipTokenForUseQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? UseQueryOptionsForUseQueries<\n TQueryFnData,\n unknown extends TError ? DefaultError : TError,\n unknown extends TData ? TQueryFnData : TData,\n TQueryKey\n >\n : // Fallback\n UseQueryOptionsForUseQueries\n\n// A defined initialData setting should return a DefinedUseQueryResult rather than UseQueryResult\ntype GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {\n initialData?: infer TInitialData\n}\n ? unknown extends TInitialData\n ? UseQueryResult<TData, TError>\n : TInitialData extends TData\n ? DefinedUseQueryResult<TData, TError>\n : TInitialData extends () => infer TInitialDataResult\n ? unknown extends TInitialDataResult\n ? UseQueryResult<TData, TError>\n : TInitialDataResult extends TData\n ? DefinedUseQueryResult<TData, TError>\n : UseQueryResult<TData, TError>\n : UseQueryResult<TData, TError>\n : UseQueryResult<TData, TError>\n\ntype GetUseQueryResult<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, any>\n | SkipTokenForUseQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? GetDefinedOrUndefinedQueryResult<\n T,\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n : // Fallback\n UseQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<UseQueryOptionsForUseQueries>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetUseQueryOptionsForUseQueries<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesOptions<\n [...Tails],\n [...TResults, GetUseQueryOptionsForUseQueries<Head>],\n [...TDepth, 1]\n >\n : ReadonlyArray<unknown> extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends Array<\n UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >\n >\n ? Array<\n UseQueryOptionsForUseQueries<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >\n >\n : // Fallback\n Array<UseQueryOptionsForUseQueries>\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<UseQueryResult>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetUseQueryResult<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesResults<\n [...Tails],\n [...TResults, GetUseQueryResult<Head>],\n [...TDepth, 1]\n >\n : { [K in keyof T]: GetUseQueryResult<T[K]> }\n\nexport function useQueries<\n T extends Array<any>,\n TCombinedResult = QueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries:\n | readonly [...QueriesOptions<T>]\n | readonly [...{ [K in keyof T]: GetUseQueryOptionsForUseQueries<T[K]> }]\n combine?: (result: QueriesResults<T>) => TCombinedResult\n subscribed?: boolean\n },\n queryClient?: QueryClient,\n): TCombinedResult {\n const client = useQueryClient(queryClient)\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n\n const defaultedQueries = React.useMemo(\n () =>\n queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts as QueryObserverOptions,\n )\n\n // Make sure the results are already in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n return defaultedOptions\n }),\n [queries, client, isRestoring],\n )\n\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions)\n const query = client.getQueryCache().get(queryOptions.queryHash)\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query)\n })\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n const [observer] = React.useState(\n () =>\n new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries,\n options as QueriesObserverOptions<TCombinedResult>,\n ),\n )\n\n // note: this must be called before useSyncExternalStore\n const [optimisticResult, getCombinedResult, trackResult] =\n observer.getOptimisticResult(\n defaultedQueries,\n (options as QueriesObserverOptions<TCombinedResult>).combine,\n )\n\n const shouldSubscribe = !isRestoring && options.subscribed !== false\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n shouldSubscribe\n ? observer.subscribe(notifyManager.batchCalls(onStoreChange))\n : noop,\n [observer, shouldSubscribe],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n }, [defaultedQueries, options, observer])\n\n const shouldAtLeastOneSuspend = optimisticResult.some((result, index) =>\n shouldSuspend(defaultedQueries[index], result),\n )\n\n const suspensePromises = shouldAtLeastOneSuspend\n ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index]\n\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts)\n return fetchOptimistic(opts, queryObserver, errorResetBoundary)\n }\n return []\n })\n : []\n\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises)\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index]\n return (\n query &&\n getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense,\n })\n )\n },\n )\n\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error\n }\n\n return getCombinedResult(trackResult())\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,YAAuB;AAEvB,wBAKO;AACP,iCAA+B;AAC/B,iCAA+B;AAC/B,qCAA2C;AAC3C,gCAIO;AACP,sBAIO;AAyLA,SAAS,WAId;AAAA,EACE;AAAA,EACA,GAAG;AACL,GAOA,aACiB;AACjB,QAAM,aAAS,2CAAe,WAAW;AACzC,QAAM,kBAAc,2CAAe;AACnC,QAAM,yBAAqB,2DAA2B;AAEtD,QAAM,mBAAyB;AAAA,IAC7B,MACE,QAAQ,IAAI,CAAC,SAAS;AACpB,YAAM,mBAAmB,OAAO;AAAA,QAC9B;AAAA,MACF;AAGA,uBAAiB,qBAAqB,cAClC,gBACA;AAEJ,aAAO;AAAA,IACT,CAAC;AAAA,IACH,CAAC,SAAS,QAAQ,WAAW;AAAA,EAC/B;AAEA,mBAAiB,QAAQ,CAAC,iBAAiB;AACzC,8CAAqB,YAAY;AACjC,UAAM,QAAQ,OAAO,cAAc,EAAE,IAAI,aAAa,SAAS;AAC/D,mEAAgC,cAAc,oBAAoB,KAAK;AAAA,EACzE,CAAC;AAED,4DAA2B,kBAAkB;AAE7C,QAAM,CAAC,QAAQ,IAAU;AAAA,IACvB,MACE,IAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACJ;AAGA,QAAM,CAAC,kBAAkB,mBAAmB,WAAW,IACrD,SAAS;AAAA,IACP;AAAA,IACC,QAAoD;AAAA,EACvD;AAEF,QAAM,kBAAkB,CAAC,eAAe,QAAQ,eAAe;AAC/D,EAAM;AAAA,IACE;AAAA,MACJ,CAAC,kBACC,kBACI,SAAS,UAAU,gCAAc,WAAW,aAAa,CAAC,IAC1D;AAAA,MACN,CAAC,UAAU,eAAe;AAAA,IAC5B;AAAA,IACA,MAAM,SAAS,iBAAiB;AAAA,IAChC,MAAM,SAAS,iBAAiB;AAAA,EAClC;AAEA,EAAM,gBAAU,MAAM;AACpB,aAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,kBAAkB,SAAS,QAAQ,CAAC;AAExC,QAAM,0BAA0B,iBAAiB;AAAA,IAAK,CAAC,QAAQ,cAC7D,+BAAc,iBAAiB,KAAK,GAAG,MAAM;AAAA,EAC/C;AAEA,QAAM,mBAAmB,0BACrB,iBAAiB,QAAQ,CAAC,QAAQ,UAAU;AAC1C,UAAM,OAAO,iBAAiB,KAAK;AAEnC,QAAI,YAAQ,+BAAc,MAAM,MAAM,GAAG;AACvC,YAAM,gBAAgB,IAAI,gCAAc,QAAQ,IAAI;AACpD,iBAAO,iCAAgB,MAAM,eAAe,kBAAkB;AAAA,IAChE;AACA,WAAO,CAAC;AAAA,EACV,CAAC,IACD,CAAC;AAEL,MAAI,iBAAiB,SAAS,GAAG;AAC/B,UAAM,QAAQ,IAAI,gBAAgB;AAAA,EACpC;AACA,QAAM,oCAAoC,iBAAiB;AAAA,IACzD,CAAC,QAAQ,UAAU;AACjB,YAAM,QAAQ,iBAAiB,KAAK;AACpC,aACE,aACA,uCAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA,cAAc,MAAM;AAAA,QACpB,OAAO,OAAO,cAAc,EAAE,IAAI,MAAM,SAAS;AAAA,QACjD,UAAU,MAAM;AAAA,MAClB,CAAC;AAAA,IAEL;AAAA,EACF;AAEA,MAAI,uFAAmC,OAAO;AAC5C,UAAM,kCAAkC;AAAA,EAC1C;AAEA,SAAO,kBAAkB,YAAY,CAAC;AACxC;","names":[]}
@@ -0,0 +1,3 @@
1
+ export { useQueries_alias_1 as useQueries } from './_tsup-dts-rollup.cjs';
2
+ export { QueriesOptions_alias_1 as QueriesOptions } from './_tsup-dts-rollup.cjs';
3
+ export { QueriesResults_alias_1 as QueriesResults } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1,3 @@
1
+ export { useQueries_alias_1 as useQueries } from './_tsup-dts-rollup.js';
2
+ export { QueriesOptions_alias_1 as QueriesOptions } from './_tsup-dts-rollup.js';
3
+ export { QueriesResults_alias_1 as QueriesResults } from './_tsup-dts-rollup.js';
@@ -0,0 +1,107 @@
1
+ "use client";
2
+
3
+ // src/useQueries.ts
4
+ import * as React from "react";
5
+ import {
6
+ QueriesObserver,
7
+ QueryObserver,
8
+ noop,
9
+ notifyManager
10
+ } from "@tanstack/query-core";
11
+ import { useQueryClient } from "./QueryClientProvider.js";
12
+ import { useIsRestoring } from "./IsRestoringProvider.js";
13
+ import { useQueryErrorResetBoundary } from "./QueryErrorResetBoundary.js";
14
+ import {
15
+ ensurePreventErrorBoundaryRetry,
16
+ getHasError,
17
+ useClearResetErrorBoundary
18
+ } from "./errorBoundaryUtils.js";
19
+ import {
20
+ ensureSuspenseTimers,
21
+ fetchOptimistic,
22
+ shouldSuspend
23
+ } from "./suspense.js";
24
+ function useQueries({
25
+ queries,
26
+ ...options
27
+ }, queryClient) {
28
+ const client = useQueryClient(queryClient);
29
+ const isRestoring = useIsRestoring();
30
+ const errorResetBoundary = useQueryErrorResetBoundary();
31
+ const defaultedQueries = React.useMemo(
32
+ () => queries.map((opts) => {
33
+ const defaultedOptions = client.defaultQueryOptions(
34
+ opts
35
+ );
36
+ defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
37
+ return defaultedOptions;
38
+ }),
39
+ [queries, client, isRestoring]
40
+ );
41
+ defaultedQueries.forEach((queryOptions) => {
42
+ ensureSuspenseTimers(queryOptions);
43
+ const query = client.getQueryCache().get(queryOptions.queryHash);
44
+ ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);
45
+ });
46
+ useClearResetErrorBoundary(errorResetBoundary);
47
+ const [observer] = React.useState(
48
+ () => new QueriesObserver(
49
+ client,
50
+ defaultedQueries,
51
+ options
52
+ )
53
+ );
54
+ const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(
55
+ defaultedQueries,
56
+ options.combine
57
+ );
58
+ const shouldSubscribe = !isRestoring && options.subscribed !== false;
59
+ React.useSyncExternalStore(
60
+ React.useCallback(
61
+ (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,
62
+ [observer, shouldSubscribe]
63
+ ),
64
+ () => observer.getCurrentResult(),
65
+ () => observer.getCurrentResult()
66
+ );
67
+ React.useEffect(() => {
68
+ observer.setQueries(
69
+ defaultedQueries,
70
+ options
71
+ );
72
+ }, [defaultedQueries, options, observer]);
73
+ const shouldAtLeastOneSuspend = optimisticResult.some(
74
+ (result, index) => shouldSuspend(defaultedQueries[index], result)
75
+ );
76
+ const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {
77
+ const opts = defaultedQueries[index];
78
+ if (opts && shouldSuspend(opts, result)) {
79
+ const queryObserver = new QueryObserver(client, opts);
80
+ return fetchOptimistic(opts, queryObserver, errorResetBoundary);
81
+ }
82
+ return [];
83
+ }) : [];
84
+ if (suspensePromises.length > 0) {
85
+ throw Promise.all(suspensePromises);
86
+ }
87
+ const firstSingleResultWhichShouldThrow = optimisticResult.find(
88
+ (result, index) => {
89
+ const query = defaultedQueries[index];
90
+ return query && getHasError({
91
+ result,
92
+ errorResetBoundary,
93
+ throwOnError: query.throwOnError,
94
+ query: client.getQueryCache().get(query.queryHash),
95
+ suspense: query.suspense
96
+ });
97
+ }
98
+ );
99
+ if (firstSingleResultWhichShouldThrow == null ? void 0 : firstSingleResultWhichShouldThrow.error) {
100
+ throw firstSingleResultWhichShouldThrow.error;
101
+ }
102
+ return getCombinedResult(trackResult());
103
+ }
104
+ export {
105
+ useQueries
106
+ };
107
+ //# sourceMappingURL=useQueries.js.map