@tanstack/query-core 5.0.0-alpha.6 → 5.0.0-alpha.63

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 (286) hide show
  1. package/build/lib/_virtual/{_rollupPluginBabelHelpers.js → _rollupPluginBabelHelpers.legacy.cjs} +1 -1
  2. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs.map +1 -0
  3. package/build/lib/_virtual/{_rollupPluginBabelHelpers.esm.js → _rollupPluginBabelHelpers.legacy.js} +1 -1
  4. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js.map +1 -0
  5. package/build/lib/{focusManager.mjs → focusManager.cjs} +9 -6
  6. package/build/lib/{focusManager.mjs.map → focusManager.cjs.map} +1 -1
  7. package/build/lib/focusManager.d.ts +2 -1
  8. package/build/lib/focusManager.d.ts.map +1 -0
  9. package/build/lib/focusManager.js +20 -39
  10. package/build/lib/focusManager.js.map +1 -1
  11. package/build/lib/focusManager.legacy.cjs +90 -0
  12. package/build/lib/focusManager.legacy.cjs.map +1 -0
  13. package/build/lib/{focusManager.esm.js → focusManager.legacy.js} +4 -4
  14. package/build/lib/focusManager.legacy.js.map +1 -0
  15. package/build/lib/{hydration.mjs → hydration.cjs} +11 -20
  16. package/build/lib/hydration.cjs.map +1 -0
  17. package/build/lib/hydration.d.ts +3 -6
  18. package/build/lib/hydration.d.ts.map +1 -0
  19. package/build/lib/hydration.js +7 -28
  20. package/build/lib/hydration.js.map +1 -1
  21. package/build/lib/hydration.legacy.cjs +92 -0
  22. package/build/lib/hydration.legacy.cjs.map +1 -0
  23. package/build/lib/{hydration.esm.js → hydration.legacy.js} +6 -19
  24. package/build/lib/hydration.legacy.js.map +1 -0
  25. package/build/lib/index.cjs +40 -0
  26. package/build/lib/index.cjs.map +1 -0
  27. package/build/lib/index.d.ts +5 -3
  28. package/build/lib/index.d.ts.map +1 -0
  29. package/build/lib/index.js +13 -39
  30. package/build/lib/index.js.map +1 -1
  31. package/build/lib/index.legacy.cjs +40 -0
  32. package/build/lib/index.legacy.cjs.map +1 -0
  33. package/build/lib/index.legacy.js +14 -0
  34. package/build/lib/index.legacy.js.map +1 -0
  35. package/build/lib/{infiniteQueryBehavior.mjs → infiniteQueryBehavior.cjs} +8 -4
  36. package/build/lib/{infiniteQueryBehavior.mjs.map → infiniteQueryBehavior.cjs.map} +1 -1
  37. package/build/lib/infiniteQueryBehavior.d.ts +1 -0
  38. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  39. package/build/lib/infiniteQueryBehavior.js +7 -12
  40. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  41. package/build/lib/infiniteQueryBehavior.legacy.cjs +131 -0
  42. package/build/lib/infiniteQueryBehavior.legacy.cjs.map +1 -0
  43. package/build/lib/{infiniteQueryBehavior.esm.js → infiniteQueryBehavior.legacy.js} +2 -2
  44. package/build/lib/infiniteQueryBehavior.legacy.js.map +1 -0
  45. package/build/lib/{infiniteQueryObserver.mjs → infiniteQueryObserver.cjs} +11 -9
  46. package/build/lib/{infiniteQueryObserver.mjs.map → infiniteQueryObserver.cjs.map} +1 -1
  47. package/build/lib/infiniteQueryObserver.d.ts +2 -1
  48. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  49. package/build/lib/infiniteQueryObserver.js +10 -13
  50. package/build/lib/infiniteQueryObserver.js.map +1 -1
  51. package/build/lib/infiniteQueryObserver.legacy.cjs +78 -0
  52. package/build/lib/infiniteQueryObserver.legacy.cjs.map +1 -0
  53. package/build/lib/{infiniteQueryObserver.esm.js → infiniteQueryObserver.legacy.js} +3 -3
  54. package/build/lib/infiniteQueryObserver.legacy.js.map +1 -0
  55. package/build/lib/{mutation.mjs → mutation.cjs} +13 -10
  56. package/build/lib/mutation.cjs.map +1 -0
  57. package/build/lib/mutation.d.ts +2 -1
  58. package/build/lib/mutation.d.ts.map +1 -0
  59. package/build/lib/mutation.js +107 -135
  60. package/build/lib/mutation.js.map +1 -1
  61. package/build/lib/mutation.legacy.cjs +262 -0
  62. package/build/lib/mutation.legacy.cjs.map +1 -0
  63. package/build/lib/{mutation.esm.js → mutation.legacy.js} +6 -6
  64. package/build/lib/mutation.legacy.js.map +1 -0
  65. package/build/lib/{mutationCache.mjs → mutationCache.cjs} +21 -18
  66. package/build/lib/mutationCache.cjs.map +1 -0
  67. package/build/lib/mutationCache.d.ts +3 -2
  68. package/build/lib/mutationCache.d.ts.map +1 -0
  69. package/build/lib/mutationCache.js +33 -47
  70. package/build/lib/mutationCache.js.map +1 -1
  71. package/build/lib/mutationCache.legacy.cjs +98 -0
  72. package/build/lib/mutationCache.legacy.cjs.map +1 -0
  73. package/build/lib/{mutationCache.esm.js → mutationCache.legacy.js} +11 -10
  74. package/build/lib/mutationCache.legacy.js.map +1 -0
  75. package/build/lib/{mutationObserver.mjs → mutationObserver.cjs} +13 -11
  76. package/build/lib/mutationObserver.cjs.map +1 -0
  77. package/build/lib/mutationObserver.d.ts +2 -1
  78. package/build/lib/mutationObserver.d.ts.map +1 -0
  79. package/build/lib/mutationObserver.js +59 -91
  80. package/build/lib/mutationObserver.js.map +1 -1
  81. package/build/lib/mutationObserver.legacy.cjs +128 -0
  82. package/build/lib/mutationObserver.legacy.cjs.map +1 -0
  83. package/build/lib/{mutationObserver.esm.js → mutationObserver.legacy.js} +7 -7
  84. package/build/lib/mutationObserver.legacy.js.map +1 -0
  85. package/build/lib/{notifyManager.mjs → notifyManager.cjs} +8 -5
  86. package/build/lib/{notifyManager.mjs.map → notifyManager.cjs.map} +1 -1
  87. package/build/lib/notifyManager.d.ts +4 -3
  88. package/build/lib/notifyManager.d.ts.map +1 -0
  89. package/build/lib/notifyManager.js +4 -7
  90. package/build/lib/notifyManager.js.map +1 -1
  91. package/build/lib/notifyManager.legacy.cjs +92 -0
  92. package/build/lib/notifyManager.legacy.cjs.map +1 -0
  93. package/build/lib/{notifyManager.esm.js → notifyManager.legacy.js} +2 -2
  94. package/build/lib/notifyManager.legacy.js.map +1 -0
  95. package/build/lib/{onlineManager.mjs → onlineManager.cjs} +16 -10
  96. package/build/lib/onlineManager.cjs.map +1 -0
  97. package/build/lib/onlineManager.d.ts +2 -1
  98. package/build/lib/onlineManager.d.ts.map +1 -0
  99. package/build/lib/onlineManager.js +26 -41
  100. package/build/lib/onlineManager.js.map +1 -1
  101. package/build/lib/onlineManager.legacy.cjs +94 -0
  102. package/build/lib/onlineManager.legacy.cjs.map +1 -0
  103. package/build/lib/{onlineManager.esm.js → onlineManager.legacy.js} +11 -8
  104. package/build/lib/onlineManager.legacy.js.map +1 -0
  105. package/build/lib/{queriesObserver.mjs → queriesObserver.cjs} +51 -26
  106. package/build/lib/queriesObserver.cjs.map +1 -0
  107. package/build/lib/queriesObserver.d.ts +14 -6
  108. package/build/lib/queriesObserver.d.ts.map +1 -0
  109. package/build/lib/queriesObserver.js +99 -107
  110. package/build/lib/queriesObserver.js.map +1 -1
  111. package/build/lib/queriesObserver.legacy.cjs +207 -0
  112. package/build/lib/queriesObserver.legacy.cjs.map +1 -0
  113. package/build/lib/{queriesObserver.esm.js → queriesObserver.legacy.js} +62 -22
  114. package/build/lib/queriesObserver.legacy.js.map +1 -0
  115. package/build/lib/{query.mjs → query.cjs} +22 -20
  116. package/build/lib/query.cjs.map +1 -0
  117. package/build/lib/query.d.ts +3 -2
  118. package/build/lib/query.d.ts.map +1 -0
  119. package/build/lib/query.js +173 -224
  120. package/build/lib/query.js.map +1 -1
  121. package/build/lib/query.legacy.cjs +471 -0
  122. package/build/lib/query.legacy.cjs.map +1 -0
  123. package/build/lib/{query.esm.js → query.legacy.js} +10 -10
  124. package/build/lib/query.legacy.js.map +1 -0
  125. package/build/lib/{queryCache.mjs → queryCache.cjs} +28 -23
  126. package/build/lib/queryCache.cjs.map +1 -0
  127. package/build/lib/queryCache.d.ts +3 -3
  128. package/build/lib/queryCache.d.ts.map +1 -0
  129. package/build/lib/queryCache.js +31 -37
  130. package/build/lib/queryCache.js.map +1 -1
  131. package/build/lib/queryCache.legacy.cjs +111 -0
  132. package/build/lib/queryCache.legacy.cjs.map +1 -0
  133. package/build/lib/{queryCache.esm.js → queryCache.legacy.js} +13 -12
  134. package/build/lib/queryCache.legacy.js.map +1 -0
  135. package/build/lib/{queryClient.mjs → queryClient.cjs} +50 -42
  136. package/build/lib/queryClient.cjs.map +1 -0
  137. package/build/lib/queryClient.d.ts +2 -2
  138. package/build/lib/queryClient.d.ts.map +1 -0
  139. package/build/lib/queryClient.js +98 -134
  140. package/build/lib/queryClient.js.map +1 -1
  141. package/build/lib/queryClient.legacy.cjs +322 -0
  142. package/build/lib/queryClient.legacy.cjs.map +1 -0
  143. package/build/lib/{queryClient.esm.js → queryClient.legacy.js} +28 -25
  144. package/build/lib/queryClient.legacy.js.map +1 -0
  145. package/build/lib/{queryObserver.mjs → queryObserver.cjs} +40 -50
  146. package/build/lib/queryObserver.cjs.map +1 -0
  147. package/build/lib/queryObserver.d.ts +6 -7
  148. package/build/lib/queryObserver.d.ts.map +1 -0
  149. package/build/lib/queryObserver.js +208 -323
  150. package/build/lib/queryObserver.js.map +1 -1
  151. package/build/lib/queryObserver.legacy.cjs +526 -0
  152. package/build/lib/queryObserver.legacy.cjs.map +1 -0
  153. package/build/lib/{queryObserver.esm.js → queryObserver.legacy.js} +71 -88
  154. package/build/lib/queryObserver.legacy.js.map +1 -0
  155. package/build/lib/{removable.mjs → removable.cjs} +7 -5
  156. package/build/lib/{removable.mjs.map → removable.cjs.map} +1 -1
  157. package/build/lib/removable.d.ts +1 -0
  158. package/build/lib/removable.d.ts.map +1 -0
  159. package/build/lib/removable.js +9 -18
  160. package/build/lib/removable.js.map +1 -1
  161. package/build/lib/removable.legacy.cjs +38 -0
  162. package/build/lib/removable.legacy.cjs.map +1 -0
  163. package/build/lib/{removable.esm.js → removable.legacy.js} +3 -3
  164. package/build/lib/removable.legacy.js.map +1 -0
  165. package/build/lib/{retryer.mjs → retryer.cjs} +15 -8
  166. package/build/lib/{retryer.mjs.map → retryer.cjs.map} +1 -1
  167. package/build/lib/retryer.d.ts +5 -4
  168. package/build/lib/retryer.d.ts.map +1 -0
  169. package/build/lib/retryer.js +21 -25
  170. package/build/lib/retryer.js.map +1 -1
  171. package/build/lib/retryer.legacy.cjs +158 -0
  172. package/build/lib/retryer.legacy.cjs.map +1 -0
  173. package/build/lib/{retryer.esm.js → retryer.legacy.js} +6 -4
  174. package/build/lib/retryer.legacy.js.map +1 -0
  175. package/build/lib/{subscribable.esm.js → subscribable.cjs} +8 -6
  176. package/build/lib/subscribable.cjs.map +1 -0
  177. package/build/lib/subscribable.d.ts +3 -2
  178. package/build/lib/subscribable.d.ts.map +1 -0
  179. package/build/lib/subscribable.js +5 -7
  180. package/build/lib/subscribable.js.map +1 -1
  181. package/build/lib/subscribable.legacy.cjs +28 -0
  182. package/build/lib/subscribable.legacy.cjs.map +1 -0
  183. package/build/lib/{subscribable.mjs → subscribable.legacy.js} +5 -5
  184. package/build/lib/subscribable.legacy.js.map +1 -0
  185. package/build/lib/tests/focusManager.test.d.ts +1 -0
  186. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  187. package/build/lib/tests/hydration.test.d.ts +1 -0
  188. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  189. package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
  190. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  191. package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
  192. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  193. package/build/lib/tests/mutationCache.test.d.ts +1 -0
  194. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  195. package/build/lib/tests/mutationObserver.test.d.ts +1 -0
  196. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  197. package/build/lib/tests/mutations.test.d.ts +1 -0
  198. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  199. package/build/lib/tests/notifyManager.test.d.ts +1 -0
  200. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  201. package/build/lib/tests/onlineManager.test.d.ts +1 -0
  202. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  203. package/build/lib/tests/queriesObserver.test.d.ts +1 -0
  204. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  205. package/build/lib/tests/query.test.d.ts +1 -0
  206. package/build/lib/tests/query.test.d.ts.map +1 -0
  207. package/build/lib/tests/queryCache.test.d.ts +1 -0
  208. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  209. package/build/lib/tests/queryClient.test.d.ts +1 -0
  210. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  211. package/build/lib/tests/queryObserver.test.d.ts +1 -0
  212. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  213. package/build/lib/tests/utils.d.ts +3 -2
  214. package/build/lib/tests/utils.d.ts.map +1 -0
  215. package/build/lib/tests/utils.test.d.ts +1 -0
  216. package/build/lib/tests/utils.test.d.ts.map +1 -0
  217. package/build/lib/types.d.ts +34 -46
  218. package/build/lib/types.d.ts.map +1 -0
  219. package/build/lib/{utils.mjs → utils.cjs} +23 -2
  220. package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
  221. package/build/lib/utils.d.ts +4 -3
  222. package/build/lib/utils.d.ts.map +1 -0
  223. package/build/lib/utils.js +2 -23
  224. package/build/lib/utils.js.map +1 -1
  225. package/build/lib/utils.legacy.cjs +248 -0
  226. package/build/lib/utils.legacy.cjs.map +1 -0
  227. package/build/lib/{utils.esm.js → utils.legacy.js} +1 -1
  228. package/build/lib/utils.legacy.js.map +1 -0
  229. package/package.json +13 -9
  230. package/src/hydration.ts +18 -37
  231. package/src/index.ts +3 -4
  232. package/src/mutation.ts +1 -1
  233. package/src/mutationCache.ts +4 -4
  234. package/src/mutationObserver.ts +1 -1
  235. package/src/onlineManager.ts +8 -4
  236. package/src/queriesObserver.ts +75 -25
  237. package/src/query.ts +4 -4
  238. package/src/queryCache.ts +5 -8
  239. package/src/queryClient.ts +20 -20
  240. package/src/queryObserver.ts +47 -55
  241. package/src/subscribable.ts +5 -5
  242. package/src/tests/hydration.test.tsx +7 -3
  243. package/src/tests/query.test.tsx +1 -1
  244. package/src/tests/queryCache.test.tsx +1 -19
  245. package/src/tests/queryClient.test.tsx +39 -3
  246. package/src/tests/queryObserver.test.tsx +121 -0
  247. package/src/types.ts +14 -21
  248. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
  249. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  250. package/build/lib/focusManager.esm.js.map +0 -1
  251. package/build/lib/hydration.esm.js.map +0 -1
  252. package/build/lib/hydration.mjs.map +0 -1
  253. package/build/lib/index.esm.js +0 -14
  254. package/build/lib/index.esm.js.map +0 -1
  255. package/build/lib/index.mjs +0 -14
  256. package/build/lib/index.mjs.map +0 -1
  257. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  258. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  259. package/build/lib/mutation.esm.js.map +0 -1
  260. package/build/lib/mutation.mjs.map +0 -1
  261. package/build/lib/mutationCache.esm.js.map +0 -1
  262. package/build/lib/mutationCache.mjs.map +0 -1
  263. package/build/lib/mutationObserver.esm.js.map +0 -1
  264. package/build/lib/mutationObserver.mjs.map +0 -1
  265. package/build/lib/notifyManager.esm.js.map +0 -1
  266. package/build/lib/onlineManager.esm.js.map +0 -1
  267. package/build/lib/onlineManager.mjs.map +0 -1
  268. package/build/lib/queriesObserver.esm.js.map +0 -1
  269. package/build/lib/queriesObserver.mjs.map +0 -1
  270. package/build/lib/query.esm.js.map +0 -1
  271. package/build/lib/query.mjs.map +0 -1
  272. package/build/lib/queryCache.esm.js.map +0 -1
  273. package/build/lib/queryCache.mjs.map +0 -1
  274. package/build/lib/queryClient.esm.js.map +0 -1
  275. package/build/lib/queryClient.mjs.map +0 -1
  276. package/build/lib/queryObserver.esm.js.map +0 -1
  277. package/build/lib/queryObserver.mjs.map +0 -1
  278. package/build/lib/removable.esm.js.map +0 -1
  279. package/build/lib/retryer.esm.js.map +0 -1
  280. package/build/lib/subscribable.esm.js.map +0 -1
  281. package/build/lib/subscribable.mjs.map +0 -1
  282. package/build/lib/utils.esm.js.map +0 -1
  283. package/build/umd/index.development.js +0 -2683
  284. package/build/umd/index.development.js.map +0 -1
  285. package/build/umd/index.production.js +0 -2
  286. package/build/umd/index.production.js.map +0 -1
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ // TYPES
4
+
5
+ // FUNCTIONS
6
+
7
+ function dehydrateMutation(mutation) {
8
+ return {
9
+ mutationKey: mutation.options.mutationKey,
10
+ state: mutation.state
11
+ };
12
+ }
13
+
14
+ // Most config is not dehydrated but instead meant to configure again when
15
+ // consuming the de/rehydrated data, typically with useQuery on the client.
16
+ // Sometimes it might make sense to prefetch data on the server and include
17
+ // in the html-payload, but not consume it on the initial render.
18
+ function dehydrateQuery(query) {
19
+ return {
20
+ state: query.state,
21
+ queryKey: query.queryKey,
22
+ queryHash: query.queryHash
23
+ };
24
+ }
25
+ function defaultShouldDehydrateMutation(mutation) {
26
+ return mutation.state.isPaused;
27
+ }
28
+ function defaultShouldDehydrateQuery(query) {
29
+ return query.state.status === 'success';
30
+ }
31
+ function dehydrate(client, options = {}) {
32
+ var _options$shouldDehydr, _options$shouldDehydr2;
33
+ const filterMutation = (_options$shouldDehydr = options.shouldDehydrateMutation) != null ? _options$shouldDehydr : defaultShouldDehydrateMutation;
34
+ const mutations = client.getMutationCache().getAll().flatMap(mutation => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []);
35
+ const filterQuery = (_options$shouldDehydr2 = options.shouldDehydrateQuery) != null ? _options$shouldDehydr2 : defaultShouldDehydrateQuery;
36
+ const queries = client.getQueryCache().getAll().flatMap(query => filterQuery(query) ? [dehydrateQuery(query)] : []);
37
+ return {
38
+ mutations,
39
+ queries
40
+ };
41
+ }
42
+ function hydrate(client, dehydratedState, options) {
43
+ if (typeof dehydratedState !== 'object' || dehydratedState === null) {
44
+ return;
45
+ }
46
+ const mutationCache = client.getMutationCache();
47
+ const queryCache = client.getQueryCache();
48
+
49
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
50
+ const mutations = dehydratedState.mutations || [];
51
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
52
+ const queries = dehydratedState.queries || [];
53
+ mutations.forEach(dehydratedMutation => {
54
+ var _options$defaultOptio;
55
+ mutationCache.build(client, {
56
+ ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),
57
+ mutationKey: dehydratedMutation.mutationKey
58
+ }, dehydratedMutation.state);
59
+ });
60
+ queries.forEach(dehydratedQuery => {
61
+ var _options$defaultOptio2;
62
+ const query = queryCache.get(dehydratedQuery.queryHash);
63
+
64
+ // Reset fetch status to idle in the dehydrated state to avoid
65
+ // query being stuck in fetching state upon hydration
66
+ const dehydratedQueryState = {
67
+ ...dehydratedQuery.state,
68
+ fetchStatus: 'idle'
69
+ };
70
+
71
+ // Do not hydrate if an existing query exists with newer data
72
+ if (query) {
73
+ if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {
74
+ query.setState(dehydratedQueryState);
75
+ }
76
+ return;
77
+ }
78
+
79
+ // Restore query
80
+ queryCache.build(client, {
81
+ ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),
82
+ queryKey: dehydratedQuery.queryKey,
83
+ queryHash: dehydratedQuery.queryHash
84
+ }, dehydratedQueryState);
85
+ });
86
+ }
87
+
88
+ exports.defaultShouldDehydrateMutation = defaultShouldDehydrateMutation;
89
+ exports.defaultShouldDehydrateQuery = defaultShouldDehydrateQuery;
90
+ exports.dehydrate = dehydrate;
91
+ exports.hydrate = hydrate;
92
+ //# sourceMappingURL=hydration.legacy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration.legacy.cjs","sources":["../../src/hydration.ts"],"sourcesContent":["import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ?? defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ?? defaultShouldDehydrateQuery\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) => (filterQuery(query) ? [dehydrateQuery(query)] : []))\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach((dehydratedQuery) => {\n const query = queryCache.get(dehydratedQuery.queryHash)\n\n // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n const dehydratedQueryState = {\n ...dehydratedQuery.state,\n fetchStatus: 'idle' as const,\n }\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash,\n },\n dehydratedQueryState,\n )\n })\n}\n"],"names":["dehydrateMutation","mutation","mutationKey","options","state","dehydrateQuery","query","queryKey","queryHash","defaultShouldDehydrateMutation","isPaused","defaultShouldDehydrateQuery","status","dehydrate","client","_options$shouldDehydr","_options$shouldDehydr2","filterMutation","shouldDehydrateMutation","mutations","getMutationCache","getAll","flatMap","filterQuery","shouldDehydrateQuery","queries","getQueryCache","hydrate","dehydratedState","mutationCache","queryCache","forEach","dehydratedMutation","_options$defaultOptio","build","defaultOptions","dehydratedQuery","_options$defaultOptio2","get","dehydratedQueryState","fetchStatus","dataUpdatedAt","setState"],"mappings":"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"}
@@ -27,24 +27,11 @@ function defaultShouldDehydrateQuery(query) {
27
27
  return query.state.status === 'success';
28
28
  }
29
29
  function dehydrate(client, options = {}) {
30
- const mutations = [];
31
- const queries = [];
32
- if (options.dehydrateMutations !== false) {
33
- const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;
34
- client.getMutationCache().getAll().forEach(mutation => {
35
- if (shouldDehydrateMutation(mutation)) {
36
- mutations.push(dehydrateMutation(mutation));
37
- }
38
- });
39
- }
40
- if (options.dehydrateQueries !== false) {
41
- const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;
42
- client.getQueryCache().getAll().forEach(query => {
43
- if (shouldDehydrateQuery(query)) {
44
- queries.push(dehydrateQuery(query));
45
- }
46
- });
47
- }
30
+ var _options$shouldDehydr, _options$shouldDehydr2;
31
+ const filterMutation = (_options$shouldDehydr = options.shouldDehydrateMutation) != null ? _options$shouldDehydr : defaultShouldDehydrateMutation;
32
+ const mutations = client.getMutationCache().getAll().flatMap(mutation => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []);
33
+ const filterQuery = (_options$shouldDehydr2 = options.shouldDehydrateQuery) != null ? _options$shouldDehydr2 : defaultShouldDehydrateQuery;
34
+ const queries = client.getQueryCache().getAll().flatMap(query => filterQuery(query) ? [dehydrateQuery(query)] : []);
48
35
  return {
49
36
  mutations,
50
37
  queries
@@ -97,4 +84,4 @@ function hydrate(client, dehydratedState, options) {
97
84
  }
98
85
 
99
86
  export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate };
100
- //# sourceMappingURL=hydration.esm.js.map
87
+ //# sourceMappingURL=hydration.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration.legacy.js","sources":["../../src/hydration.ts"],"sourcesContent":["import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ?? defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ?? defaultShouldDehydrateQuery\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) => (filterQuery(query) ? [dehydrateQuery(query)] : []))\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach((dehydratedQuery) => {\n const query = queryCache.get(dehydratedQuery.queryHash)\n\n // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n const dehydratedQueryState = {\n ...dehydratedQuery.state,\n fetchStatus: 'idle' as const,\n }\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash,\n },\n dehydratedQueryState,\n )\n })\n}\n"],"names":["dehydrateMutation","mutation","mutationKey","options","state","dehydrateQuery","query","queryKey","queryHash","defaultShouldDehydrateMutation","isPaused","defaultShouldDehydrateQuery","status","dehydrate","client","_options$shouldDehydr","_options$shouldDehydr2","filterMutation","shouldDehydrateMutation","mutations","getMutationCache","getAll","flatMap","filterQuery","shouldDehydrateQuery","queries","getQueryCache","hydrate","dehydratedState","mutationCache","queryCache","forEach","dehydratedMutation","_options$defaultOptio","build","defaultOptions","dehydratedQuery","_options$defaultOptio2","get","dehydratedQueryState","fetchStatus","dataUpdatedAt","setState"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var retryer = require('./retryer.cjs');
4
+ var queryCache = require('./queryCache.cjs');
5
+ var queryClient = require('./queryClient.cjs');
6
+ var queryObserver = require('./queryObserver.cjs');
7
+ var queriesObserver = require('./queriesObserver.cjs');
8
+ var infiniteQueryObserver = require('./infiniteQueryObserver.cjs');
9
+ var mutationCache = require('./mutationCache.cjs');
10
+ var mutationObserver = require('./mutationObserver.cjs');
11
+ var notifyManager = require('./notifyManager.cjs');
12
+ var focusManager = require('./focusManager.cjs');
13
+ var onlineManager = require('./onlineManager.cjs');
14
+ var utils = require('./utils.cjs');
15
+ var hydration = require('./hydration.cjs');
16
+
17
+
18
+
19
+ exports.CancelledError = retryer.CancelledError;
20
+ exports.isCancelledError = retryer.isCancelledError;
21
+ exports.QueryCache = queryCache.QueryCache;
22
+ exports.QueryClient = queryClient.QueryClient;
23
+ exports.QueryObserver = queryObserver.QueryObserver;
24
+ exports.QueriesObserver = queriesObserver.QueriesObserver;
25
+ exports.InfiniteQueryObserver = infiniteQueryObserver.InfiniteQueryObserver;
26
+ exports.MutationCache = mutationCache.MutationCache;
27
+ exports.MutationObserver = mutationObserver.MutationObserver;
28
+ exports.notifyManager = notifyManager.notifyManager;
29
+ exports.focusManager = focusManager.focusManager;
30
+ exports.onlineManager = onlineManager.onlineManager;
31
+ exports.hashKey = utils.hashKey;
32
+ exports.isServer = utils.isServer;
33
+ exports.keepPreviousData = utils.keepPreviousData;
34
+ exports.matchQuery = utils.matchQuery;
35
+ exports.replaceEqualDeep = utils.replaceEqualDeep;
36
+ exports.defaultShouldDehydrateMutation = hydration.defaultShouldDehydrateMutation;
37
+ exports.defaultShouldDehydrateQuery = hydration.defaultShouldDehydrateQuery;
38
+ exports.dehydrate = hydration.dehydrate;
39
+ exports.hydrate = hydration.hydrate;
40
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,8 +12,10 @@ export { onlineManager } from './onlineManager';
12
12
  export { hashKey, replaceEqualDeep, isServer, matchQuery, keepPreviousData, } from './utils';
13
13
  export type { MutationFilters, QueryFilters, Updater } from './utils';
14
14
  export { isCancelledError } from './retryer';
15
- export { dehydrate, hydrate, defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, } from './hydration';
15
+ export { dehydrate, hydrate, defaultShouldDehydrateQuery, defaultShouldDehydrateMutation, } from './hydration';
16
16
  export * from './types';
17
17
  export type { Query, QueryState } from './query';
18
- export type { Mutation } from './mutation';
19
- export type { DehydrateOptions, DehydratedState, HydrateOptions, ShouldDehydrateMutationFunction, ShouldDehydrateQueryFunction, } from './hydration';
18
+ export type { Mutation, MutationState } from './mutation';
19
+ export type { DehydrateOptions, DehydratedState, HydrateOptions, } from './hydration';
20
+ export type { QueriesObserverOptions } from './queriesObserver';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EACL,SAAS,EACT,OAAO,EACP,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,aAAa,CAAA;AAGpB,cAAc,SAAS,CAAA;AACvB,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACzD,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,40 +1,14 @@
1
- 'use strict';
2
-
3
- var retryer = require('./retryer.js');
4
- var queryCache = require('./queryCache.js');
5
- var queryClient = require('./queryClient.js');
6
- var queryObserver = require('./queryObserver.js');
7
- var queriesObserver = require('./queriesObserver.js');
8
- var infiniteQueryObserver = require('./infiniteQueryObserver.js');
9
- var mutationCache = require('./mutationCache.js');
10
- var mutationObserver = require('./mutationObserver.js');
11
- var notifyManager = require('./notifyManager.js');
12
- var focusManager = require('./focusManager.js');
13
- var onlineManager = require('./onlineManager.js');
14
- var utils = require('./utils.js');
15
- var hydration = require('./hydration.js');
16
-
17
-
18
-
19
- exports.CancelledError = retryer.CancelledError;
20
- exports.isCancelledError = retryer.isCancelledError;
21
- exports.QueryCache = queryCache.QueryCache;
22
- exports.QueryClient = queryClient.QueryClient;
23
- exports.QueryObserver = queryObserver.QueryObserver;
24
- exports.QueriesObserver = queriesObserver.QueriesObserver;
25
- exports.InfiniteQueryObserver = infiniteQueryObserver.InfiniteQueryObserver;
26
- exports.MutationCache = mutationCache.MutationCache;
27
- exports.MutationObserver = mutationObserver.MutationObserver;
28
- exports.notifyManager = notifyManager.notifyManager;
29
- exports.focusManager = focusManager.focusManager;
30
- exports.onlineManager = onlineManager.onlineManager;
31
- exports.hashKey = utils.hashKey;
32
- exports.isServer = utils.isServer;
33
- exports.keepPreviousData = utils.keepPreviousData;
34
- exports.matchQuery = utils.matchQuery;
35
- exports.replaceEqualDeep = utils.replaceEqualDeep;
36
- exports.defaultShouldDehydrateMutation = hydration.defaultShouldDehydrateMutation;
37
- exports.defaultShouldDehydrateQuery = hydration.defaultShouldDehydrateQuery;
38
- exports.dehydrate = hydration.dehydrate;
39
- exports.hydrate = hydration.hydrate;
1
+ export { CancelledError, isCancelledError } from './retryer.js';
2
+ export { QueryCache } from './queryCache.js';
3
+ export { QueryClient } from './queryClient.js';
4
+ export { QueryObserver } from './queryObserver.js';
5
+ export { QueriesObserver } from './queriesObserver.js';
6
+ export { InfiniteQueryObserver } from './infiniteQueryObserver.js';
7
+ export { MutationCache } from './mutationCache.js';
8
+ export { MutationObserver } from './mutationObserver.js';
9
+ export { notifyManager } from './notifyManager.js';
10
+ export { focusManager } from './focusManager.js';
11
+ export { onlineManager } from './onlineManager.js';
12
+ export { hashKey, isServer, keepPreviousData, matchQuery, replaceEqualDeep } from './utils.js';
13
+ export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate } from './hydration.js';
40
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var retryer = require('./retryer.legacy.cjs');
4
+ var queryCache = require('./queryCache.legacy.cjs');
5
+ var queryClient = require('./queryClient.legacy.cjs');
6
+ var queryObserver = require('./queryObserver.legacy.cjs');
7
+ var queriesObserver = require('./queriesObserver.legacy.cjs');
8
+ var infiniteQueryObserver = require('./infiniteQueryObserver.legacy.cjs');
9
+ var mutationCache = require('./mutationCache.legacy.cjs');
10
+ var mutationObserver = require('./mutationObserver.legacy.cjs');
11
+ var notifyManager = require('./notifyManager.legacy.cjs');
12
+ var focusManager = require('./focusManager.legacy.cjs');
13
+ var onlineManager = require('./onlineManager.legacy.cjs');
14
+ var utils = require('./utils.legacy.cjs');
15
+ var hydration = require('./hydration.legacy.cjs');
16
+
17
+
18
+
19
+ exports.CancelledError = retryer.CancelledError;
20
+ exports.isCancelledError = retryer.isCancelledError;
21
+ exports.QueryCache = queryCache.QueryCache;
22
+ exports.QueryClient = queryClient.QueryClient;
23
+ exports.QueryObserver = queryObserver.QueryObserver;
24
+ exports.QueriesObserver = queriesObserver.QueriesObserver;
25
+ exports.InfiniteQueryObserver = infiniteQueryObserver.InfiniteQueryObserver;
26
+ exports.MutationCache = mutationCache.MutationCache;
27
+ exports.MutationObserver = mutationObserver.MutationObserver;
28
+ exports.notifyManager = notifyManager.notifyManager;
29
+ exports.focusManager = focusManager.focusManager;
30
+ exports.onlineManager = onlineManager.onlineManager;
31
+ exports.hashKey = utils.hashKey;
32
+ exports.isServer = utils.isServer;
33
+ exports.keepPreviousData = utils.keepPreviousData;
34
+ exports.matchQuery = utils.matchQuery;
35
+ exports.replaceEqualDeep = utils.replaceEqualDeep;
36
+ exports.defaultShouldDehydrateMutation = hydration.defaultShouldDehydrateMutation;
37
+ exports.defaultShouldDehydrateQuery = hydration.defaultShouldDehydrateQuery;
38
+ exports.dehydrate = hydration.dehydrate;
39
+ exports.hydrate = hydration.hydrate;
40
+ //# sourceMappingURL=index.legacy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.legacy.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,14 @@
1
+ export { CancelledError, isCancelledError } from './retryer.legacy.js';
2
+ export { QueryCache } from './queryCache.legacy.js';
3
+ export { QueryClient } from './queryClient.legacy.js';
4
+ export { QueryObserver } from './queryObserver.legacy.js';
5
+ export { QueriesObserver } from './queriesObserver.legacy.js';
6
+ export { InfiniteQueryObserver } from './infiniteQueryObserver.legacy.js';
7
+ export { MutationCache } from './mutationCache.legacy.js';
8
+ export { MutationObserver } from './mutationObserver.legacy.js';
9
+ export { notifyManager } from './notifyManager.legacy.js';
10
+ export { focusManager } from './focusManager.legacy.js';
11
+ export { onlineManager } from './onlineManager.legacy.js';
12
+ export { hashKey, isServer, keepPreviousData, matchQuery, replaceEqualDeep } from './utils.legacy.js';
13
+ export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate } from './hydration.legacy.js';
14
+ //# sourceMappingURL=index.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.legacy.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,4 +1,6 @@
1
- import { addToStart, addToEnd } from './utils.mjs';
1
+ 'use strict';
2
+
3
+ var utils = require('./utils.cjs');
2
4
 
3
5
  function infiniteQueryBehavior() {
4
6
  return {
@@ -51,7 +53,7 @@ function infiniteQueryBehavior() {
51
53
  const {
52
54
  maxPages
53
55
  } = context.options;
54
- const addTo = previous ? addToStart : addToEnd;
56
+ const addTo = previous ? utils.addToStart : utils.addToEnd;
55
57
  return {
56
58
  pages: addTo(data.pages, page, maxPages),
57
59
  pageParams: addTo(data.pageParams, param, maxPages)
@@ -122,5 +124,7 @@ function hasPreviousPage(options, data) {
122
124
  return typeof getPreviousPageParam(options, data) !== 'undefined';
123
125
  }
124
126
 
125
- export { hasNextPage, hasPreviousPage, infiniteQueryBehavior };
126
- //# sourceMappingURL=infiniteQueryBehavior.mjs.map
127
+ exports.hasNextPage = hasNextPage;
128
+ exports.hasPreviousPage = hasPreviousPage;
129
+ exports.infiniteQueryBehavior = infiniteQueryBehavior;
130
+ //# sourceMappingURL=infiniteQueryBehavior.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"infiniteQueryBehavior.mjs","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","options","direction","fetchOptions","meta","fetchMore","oldPages","state","data","pages","oldPageParams","pageParams","empty","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","Promise","reject","Error","fetchPage","param","previous","length","resolve","queryFnContext","queryKey","pageParam","page","maxPages","addTo","addToStart","addToEnd","result","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","i","lastIndex","hasNextPage","hasPreviousPage"],"mappings":"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"}
1
+ {"version":3,"file":"infiniteQueryBehavior.cjs","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","options","direction","fetchOptions","meta","fetchMore","oldPages","state","data","pages","oldPageParams","pageParams","empty","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","Promise","reject","Error","fetchPage","param","previous","length","resolve","queryFnContext","queryKey","pageParam","page","maxPages","addTo","addToStart","addToEnd","result","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","i","lastIndex","hasNextPage","hasPreviousPage"],"mappings":"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"}
@@ -9,3 +9,4 @@ export declare function hasNextPage(options: InfiniteQueryPageParamsOptions<any,
9
9
  * Checks if there is a previous page.
10
10
  */
11
11
  export declare function hasPreviousPage(options: InfiniteQueryPageParamsOptions<any, any>, data?: InfiniteData<unknown>): boolean;
12
+ //# sourceMappingURL=infiniteQueryBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infiniteQueryBehavior.d.ts","sourceRoot":"","sources":["../../src/infiniteQueryBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EACV,YAAY,EACZ,8BAA8B,EAG/B,MAAM,SAAS,CAAA;AAEhB,wBAAgB,qBAAqB,CACnC,YAAY,EACZ,MAAM,EACN,KAAK,KACF,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CA2G5D;AA2BD;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAC3B,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAC3B,OAAO,CAGT"}
@@ -1,16 +1,13 @@
1
- 'use strict';
2
-
3
- var utils = require('./utils.js');
1
+ import { addToStart, addToEnd } from './utils.js';
4
2
 
5
3
  function infiniteQueryBehavior() {
6
4
  return {
7
5
  onFetch: context => {
8
6
  context.fetchFn = async () => {
9
- var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$state$data, _context$state$data2;
10
7
  const options = context.options;
11
- const direction = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : (_context$fetchOptions3 = _context$fetchOptions2.fetchMore) == null ? void 0 : _context$fetchOptions3.direction;
12
- const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];
13
- const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];
8
+ const direction = context.fetchOptions?.meta?.fetchMore?.direction;
9
+ const oldPages = context.state.data?.pages || [];
10
+ const oldPageParams = context.state.data?.pageParams || [];
14
11
  const empty = {
15
12
  pages: [],
16
13
  pageParams: []
@@ -54,7 +51,7 @@ function infiniteQueryBehavior() {
54
51
  const {
55
52
  maxPages
56
53
  } = context.options;
57
- const addTo = previous ? utils.addToStart : utils.addToEnd;
54
+ const addTo = previous ? addToStart : addToEnd;
58
55
  return {
59
56
  pages: addTo(data.pages, page, maxPages),
60
57
  pageParams: addTo(data.pageParams, param, maxPages)
@@ -106,7 +103,7 @@ function getPreviousPageParam(options, {
106
103
  pages,
107
104
  pageParams
108
105
  }) {
109
- return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages, pageParams[0], pageParams);
106
+ return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams);
110
107
  }
111
108
 
112
109
  /**
@@ -125,7 +122,5 @@ function hasPreviousPage(options, data) {
125
122
  return typeof getPreviousPageParam(options, data) !== 'undefined';
126
123
  }
127
124
 
128
- exports.hasNextPage = hasNextPage;
129
- exports.hasPreviousPage = hasPreviousPage;
130
- exports.infiniteQueryBehavior = infiniteQueryBehavior;
125
+ export { hasNextPage, hasPreviousPage, infiniteQueryBehavior };
131
126
  //# sourceMappingURL=infiniteQueryBehavior.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"infiniteQueryBehavior.js","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","options","direction","fetchOptions","meta","fetchMore","oldPages","state","data","pages","oldPageParams","pageParams","empty","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","Promise","reject","Error","fetchPage","param","previous","length","resolve","queryFnContext","queryKey","pageParam","page","maxPages","addTo","addToStart","addToEnd","result","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","i","lastIndex","hasNextPage","hasPreviousPage"],"mappings":"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"}
1
+ {"version":3,"file":"infiniteQueryBehavior.js","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","options","direction","fetchOptions","meta","fetchMore","oldPages","state","data","pages","oldPageParams","pageParams","empty","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","Promise","reject","Error","fetchPage","param","previous","length","resolve","queryFnContext","queryKey","pageParam","page","maxPages","addTo","addToStart","addToEnd","result","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","i","lastIndex","hasNextPage","hasPreviousPage"],"mappings":";;AASO,SAASA,qBAAqBA,GAIyB;EAC5D,OAAO;IACLC,OAAO,EAAGC,OAAO,IAAK;MACpBA,OAAO,CAACC,OAAO,GAAG,YAAY;AAC5B,QAAA,MAAMC,OAAO,GAAGF,OAAO,CAACE,OAAgD,CAAA;QACxE,MAAMC,SAAS,GAAGH,OAAO,CAACI,YAAY,EAAEC,IAAI,EAAEC,SAAS,EAAEH,SAAS,CAAA;QAClE,MAAMI,QAAQ,GAAGP,OAAO,CAACQ,KAAK,CAACC,IAAI,EAAEC,KAAK,IAAI,EAAE,CAAA;QAChD,MAAMC,aAAa,GAAGX,OAAO,CAACQ,KAAK,CAACC,IAAI,EAAEG,UAAU,IAAI,EAAE,CAAA;AAC1D,QAAA,MAAMC,KAAK,GAAG;AAAEH,UAAAA,KAAK,EAAE,EAAE;AAAEE,UAAAA,UAAU,EAAE,EAAA;SAAI,CAAA;QAC3C,IAAIE,SAAS,GAAG,KAAK,CAAA;QAErB,MAAMC,iBAAiB,GAAIC,MAAe,IAAK;AAC7CC,UAAAA,MAAM,CAACC,cAAc,CAACF,MAAM,EAAE,QAAQ,EAAE;AACtCG,YAAAA,UAAU,EAAE,IAAI;YAChBC,GAAG,EAAEA,MAAM;AACT,cAAA,IAAIpB,OAAO,CAACqB,MAAM,CAACC,OAAO,EAAE;AAC1BR,gBAAAA,SAAS,GAAG,IAAI,CAAA;AAClB,eAAC,MAAM;AACLd,gBAAAA,OAAO,CAACqB,MAAM,CAACE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC7CT,kBAAAA,SAAS,GAAG,IAAI,CAAA;AAClB,iBAAC,CAAC,CAAA;AACJ,eAAA;cACA,OAAOd,OAAO,CAACqB,MAAM,CAAA;AACvB,aAAA;AACF,WAAC,CAAC,CAAA;SACH,CAAA;;AAED;AACA,QAAA,MAAMG,OAAO,GACXxB,OAAO,CAACE,OAAO,CAACsB,OAAO,KACtB,MAAMC,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;;AAEtD;QACA,MAAMC,SAAS,GAAG,OAChBnB,IAA2B,EAC3BoB,KAAc,EACdC,QAAkB,KACiB;AACnC,UAAA,IAAIhB,SAAS,EAAE;AACb,YAAA,OAAOW,OAAO,CAACC,MAAM,EAAE,CAAA;AACzB,WAAA;UAEA,IAAI,OAAOG,KAAK,KAAK,WAAW,IAAIpB,IAAI,CAACC,KAAK,CAACqB,MAAM,EAAE;AACrD,YAAA,OAAON,OAAO,CAACO,OAAO,CAACvB,IAAI,CAAC,CAAA;AAC9B,WAAA;AAEA,UAAA,MAAMwB,cAGL,GAAG;YACFC,QAAQ,EAAElC,OAAO,CAACkC,QAAQ;AAC1BC,YAAAA,SAAS,EAAEN,KAAK;AAChB1B,YAAAA,SAAS,EAAE2B,QAAQ,GAAG,UAAU,GAAG,SAAS;AAC5CzB,YAAAA,IAAI,EAAEL,OAAO,CAACE,OAAO,CAACG,IAAAA;WACvB,CAAA;UAEDU,iBAAiB,CAACkB,cAAc,CAAC,CAAA;AAEjC,UAAA,MAAMG,IAAI,GAAG,MAAMZ,OAAO,CACxBS,cACF,CAAC,CAAA;UAED,MAAM;AAAEI,YAAAA,QAAAA;WAAU,GAAGrC,OAAO,CAACE,OAAO,CAAA;AACpC,UAAA,MAAMoC,KAAK,GAAGR,QAAQ,GAAGS,UAAU,GAAGC,QAAQ,CAAA;UAE9C,OAAO;YACL9B,KAAK,EAAE4B,KAAK,CAAC7B,IAAI,CAACC,KAAK,EAAE0B,IAAI,EAAEC,QAAQ,CAAC;YACxCzB,UAAU,EAAE0B,KAAK,CAAC7B,IAAI,CAACG,UAAU,EAAEiB,KAAK,EAAEQ,QAAQ,CAAA;WACnD,CAAA;SACF,CAAA;AAED,QAAA,IAAII,MAA6B,CAAA;;AAEjC;AACA,QAAA,IAAI,CAAClC,QAAQ,CAACwB,MAAM,EAAE;UACpBU,MAAM,GAAG,MAAMb,SAAS,CAACf,KAAK,EAAEX,OAAO,CAACwC,gBAAgB,CAAC,CAAA;AAC3D,SAAA;;AAEA;aACK,IAAIvC,SAAS,EAAE;AAClB,UAAA,MAAM2B,QAAQ,GAAG3B,SAAS,KAAK,UAAU,CAAA;AACzC,UAAA,MAAMwC,WAAW,GAAGb,QAAQ,GAAGc,oBAAoB,GAAGC,gBAAgB,CAAA;AACtE,UAAA,MAAMC,OAAO,GAAG;AACdpC,YAAAA,KAAK,EAAEH,QAAQ;AACfK,YAAAA,UAAU,EAAED,aAAAA;WACb,CAAA;AACD,UAAA,MAAMkB,KAAK,GAAGc,WAAW,CAACzC,OAAO,EAAE4C,OAAO,CAAC,CAAA;UAE3CL,MAAM,GAAG,MAAMb,SAAS,CAACkB,OAAO,EAAEjB,KAAK,EAAEC,QAAQ,CAAC,CAAA;AACpD,SAAA;;AAEA;aACK;AACH;UACAW,MAAM,GAAG,MAAMb,SAAS,CAACf,KAAK,EAAEF,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;;AAEjD;AACA,UAAA,KAAK,IAAIoC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGxC,QAAQ,CAACwB,MAAM,EAAEgB,CAAC,EAAE,EAAE;AACxC,YAAA,MAAMlB,KAAK,GAAGgB,gBAAgB,CAAC3C,OAAO,EAAEuC,MAAM,CAAC,CAAA;AAC/CA,YAAAA,MAAM,GAAG,MAAMb,SAAS,CAACa,MAAM,EAAEZ,KAAK,CAAC,CAAA;AACzC,WAAA;AACF,SAAA;AAEA,QAAA,OAAOY,MAAM,CAAA;OACd,CAAA;AACH,KAAA;GACD,CAAA;AACH,CAAA;AAEA,SAASI,gBAAgBA,CACvB3C,OAA4C,EAC5C;EAAEQ,KAAK;AAAEE,EAAAA,UAAAA;AAAkC,CAAC,EACvB;AACrB,EAAA,MAAMoC,SAAS,GAAGtC,KAAK,CAACqB,MAAM,GAAG,CAAC,CAAA;AAClC,EAAA,OAAO7B,OAAO,CAAC2C,gBAAgB,CAC7BnC,KAAK,CAACsC,SAAS,CAAC,EAChBtC,KAAK,EACLE,UAAU,CAACoC,SAAS,CAAC,EACrBpC,UACF,CAAC,CAAA;AACH,CAAA;AAEA,SAASgC,oBAAoBA,CAC3B1C,OAA4C,EAC5C;EAAEQ,KAAK;AAAEE,EAAAA,UAAAA;AAAkC,CAAC,EACvB;AACrB,EAAA,OAAOV,OAAO,CAAC0C,oBAAoB,GACjClC,KAAK,CAAC,CAAC,CAAC,EACRA,KAAK,EACLE,UAAU,CAAC,CAAC,CAAC,EACbA,UACF,CAAC,CAAA;AACH,CAAA;;AAEA;AACA;AACA;AACO,SAASqC,WAAWA,CACzB/C,OAAiD,EACjDO,IAA4B,EACnB;AACT,EAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK,CAAA;EACvB,OAAO,OAAOoC,gBAAgB,CAAC3C,OAAO,EAAEO,IAAI,CAAC,KAAK,WAAW,CAAA;AAC/D,CAAA;;AAEA;AACA;AACA;AACO,SAASyC,eAAeA,CAC7BhD,OAAiD,EACjDO,IAA4B,EACnB;EACT,IAAI,CAACA,IAAI,IAAI,CAACP,OAAO,CAAC0C,oBAAoB,EAAE,OAAO,KAAK,CAAA;EACxD,OAAO,OAAOA,oBAAoB,CAAC1C,OAAO,EAAEO,IAAI,CAAC,KAAK,WAAW,CAAA;AACnE;;;;"}