@tanstack/query-core 5.0.0-alpha.5 → 5.0.0-alpha.51

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 (221) hide show
  1. package/build/lib/{focusManager.esm.js → focusManager.cjs} +9 -6
  2. package/build/lib/{focusManager.mjs.map → focusManager.cjs.map} +1 -1
  3. package/build/lib/focusManager.d.ts +2 -1
  4. package/build/lib/focusManager.d.ts.map +1 -0
  5. package/build/lib/focusManager.js +5 -8
  6. package/build/lib/focusManager.js.map +1 -1
  7. package/build/lib/{hydration.mjs → hydration.cjs} +11 -20
  8. package/build/lib/hydration.cjs.map +1 -0
  9. package/build/lib/hydration.d.ts +3 -6
  10. package/build/lib/hydration.d.ts.map +1 -0
  11. package/build/lib/hydration.js +5 -24
  12. package/build/lib/hydration.js.map +1 -1
  13. package/build/lib/index.cjs +40 -0
  14. package/build/lib/index.cjs.map +1 -0
  15. package/build/lib/index.d.ts +5 -3
  16. package/build/lib/index.d.ts.map +1 -0
  17. package/build/lib/index.js +13 -39
  18. package/build/lib/index.js.map +1 -1
  19. package/build/lib/{infiniteQueryBehavior.esm.js → infiniteQueryBehavior.cjs} +9 -4
  20. package/build/lib/infiniteQueryBehavior.cjs.map +1 -0
  21. package/build/lib/infiniteQueryBehavior.d.ts +1 -0
  22. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  23. package/build/lib/infiniteQueryBehavior.js +4 -7
  24. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  25. package/build/lib/{infiniteQueryObserver.esm.js → infiniteQueryObserver.cjs} +11 -9
  26. package/build/lib/{infiniteQueryObserver.mjs.map → infiniteQueryObserver.cjs.map} +1 -1
  27. package/build/lib/infiniteQueryObserver.d.ts +2 -1
  28. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  29. package/build/lib/infiniteQueryObserver.js +8 -10
  30. package/build/lib/infiniteQueryObserver.js.map +1 -1
  31. package/build/lib/{mutation.esm.js → mutation.cjs} +12 -9
  32. package/build/lib/{mutation.mjs.map → mutation.cjs.map} +1 -1
  33. package/build/lib/mutation.d.ts +2 -1
  34. package/build/lib/mutation.d.ts.map +1 -0
  35. package/build/lib/mutation.js +8 -11
  36. package/build/lib/mutation.js.map +1 -1
  37. package/build/lib/{mutationCache.esm.js → mutationCache.cjs} +21 -18
  38. package/build/lib/mutationCache.cjs.map +1 -0
  39. package/build/lib/mutationCache.d.ts +3 -2
  40. package/build/lib/mutationCache.d.ts.map +1 -0
  41. package/build/lib/mutationCache.js +18 -19
  42. package/build/lib/mutationCache.js.map +1 -1
  43. package/build/lib/{mutationObserver.esm.js → mutationObserver.cjs} +13 -11
  44. package/build/lib/mutationObserver.cjs.map +1 -0
  45. package/build/lib/mutationObserver.d.ts +2 -1
  46. package/build/lib/mutationObserver.d.ts.map +1 -0
  47. package/build/lib/mutationObserver.js +10 -12
  48. package/build/lib/mutationObserver.js.map +1 -1
  49. package/build/lib/{notifyManager.esm.js → notifyManager.cjs} +8 -5
  50. package/build/lib/{notifyManager.mjs.map → notifyManager.cjs.map} +1 -1
  51. package/build/lib/notifyManager.d.ts +4 -3
  52. package/build/lib/notifyManager.d.ts.map +1 -0
  53. package/build/lib/notifyManager.js +4 -7
  54. package/build/lib/notifyManager.js.map +1 -1
  55. package/build/lib/{onlineManager.esm.js → onlineManager.cjs} +9 -6
  56. package/build/lib/{onlineManager.mjs.map → onlineManager.cjs.map} +1 -1
  57. package/build/lib/onlineManager.d.ts +2 -1
  58. package/build/lib/onlineManager.d.ts.map +1 -0
  59. package/build/lib/onlineManager.js +5 -8
  60. package/build/lib/onlineManager.js.map +1 -1
  61. package/build/lib/{queriesObserver.esm.js → queriesObserver.cjs} +50 -25
  62. package/build/lib/queriesObserver.cjs.map +1 -0
  63. package/build/lib/queriesObserver.d.ts +14 -6
  64. package/build/lib/queriesObserver.d.ts.map +1 -0
  65. package/build/lib/queriesObserver.js +47 -26
  66. package/build/lib/queriesObserver.js.map +1 -1
  67. package/build/lib/{query.mjs → query.cjs} +20 -18
  68. package/build/lib/query.cjs.map +1 -0
  69. package/build/lib/query.d.ts +6 -4
  70. package/build/lib/query.d.ts.map +1 -0
  71. package/build/lib/query.js +17 -19
  72. package/build/lib/query.js.map +1 -1
  73. package/build/lib/{queryCache.mjs → queryCache.cjs} +28 -23
  74. package/build/lib/queryCache.cjs.map +1 -0
  75. package/build/lib/queryCache.d.ts +3 -3
  76. package/build/lib/queryCache.d.ts.map +1 -0
  77. package/build/lib/queryCache.js +24 -23
  78. package/build/lib/queryCache.js.map +1 -1
  79. package/build/lib/{queryClient.esm.js → queryClient.cjs} +50 -42
  80. package/build/lib/queryClient.cjs.map +1 -0
  81. package/build/lib/queryClient.d.ts +2 -2
  82. package/build/lib/queryClient.d.ts.map +1 -0
  83. package/build/lib/queryClient.js +46 -42
  84. package/build/lib/queryClient.js.map +1 -1
  85. package/build/lib/{queryObserver.mjs → queryObserver.cjs} +36 -46
  86. package/build/lib/queryObserver.cjs.map +1 -0
  87. package/build/lib/queryObserver.d.ts +5 -7
  88. package/build/lib/queryObserver.d.ts.map +1 -0
  89. package/build/lib/queryObserver.js +33 -47
  90. package/build/lib/queryObserver.js.map +1 -1
  91. package/build/lib/{removable.esm.js → removable.cjs} +7 -5
  92. package/build/lib/{removable.mjs.map → removable.cjs.map} +1 -1
  93. package/build/lib/removable.d.ts +1 -0
  94. package/build/lib/removable.d.ts.map +1 -0
  95. package/build/lib/removable.js +4 -6
  96. package/build/lib/removable.js.map +1 -1
  97. package/build/lib/{retryer.esm.js → retryer.cjs} +15 -8
  98. package/build/lib/{retryer.mjs.map → retryer.cjs.map} +1 -1
  99. package/build/lib/retryer.d.ts +5 -4
  100. package/build/lib/retryer.d.ts.map +1 -0
  101. package/build/lib/retryer.js +8 -11
  102. package/build/lib/retryer.js.map +1 -1
  103. package/build/lib/{subscribable.esm.js → subscribable.cjs} +8 -6
  104. package/build/lib/subscribable.cjs.map +1 -0
  105. package/build/lib/subscribable.d.ts +3 -2
  106. package/build/lib/subscribable.d.ts.map +1 -0
  107. package/build/lib/subscribable.js +5 -7
  108. package/build/lib/subscribable.js.map +1 -1
  109. package/build/lib/tests/focusManager.test.d.ts +1 -0
  110. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  111. package/build/lib/tests/hydration.test.d.ts +1 -0
  112. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  113. package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
  114. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  115. package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
  116. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  117. package/build/lib/tests/mutationCache.test.d.ts +1 -0
  118. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  119. package/build/lib/tests/mutationObserver.test.d.ts +1 -0
  120. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  121. package/build/lib/tests/mutations.test.d.ts +1 -0
  122. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  123. package/build/lib/tests/notifyManager.test.d.ts +1 -0
  124. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  125. package/build/lib/tests/onlineManager.test.d.ts +1 -0
  126. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  127. package/build/lib/tests/queriesObserver.test.d.ts +1 -0
  128. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  129. package/build/lib/tests/query.test.d.ts +1 -0
  130. package/build/lib/tests/query.test.d.ts.map +1 -0
  131. package/build/lib/tests/queryCache.test.d.ts +1 -0
  132. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  133. package/build/lib/tests/queryClient.test.d.ts +1 -0
  134. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  135. package/build/lib/tests/queryObserver.test.d.ts +1 -0
  136. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  137. package/build/lib/tests/utils.d.ts +3 -2
  138. package/build/lib/tests/utils.d.ts.map +1 -0
  139. package/build/lib/tests/utils.test.d.ts +1 -0
  140. package/build/lib/tests/utils.test.d.ts.map +1 -0
  141. package/build/lib/types.d.ts +35 -45
  142. package/build/lib/types.d.ts.map +1 -0
  143. package/build/lib/{utils.esm.js → utils.cjs} +23 -2
  144. package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
  145. package/build/lib/utils.d.ts +4 -3
  146. package/build/lib/utils.d.ts.map +1 -0
  147. package/build/lib/utils.js +1 -22
  148. package/build/lib/utils.js.map +1 -1
  149. package/package.json +12 -9
  150. package/src/hydration.ts +18 -37
  151. package/src/index.ts +3 -4
  152. package/src/infiniteQueryBehavior.ts +1 -0
  153. package/src/mutationCache.ts +4 -4
  154. package/src/mutationObserver.ts +1 -1
  155. package/src/queriesObserver.ts +74 -24
  156. package/src/query.ts +7 -5
  157. package/src/queryCache.ts +5 -8
  158. package/src/queryClient.ts +20 -20
  159. package/src/queryObserver.ts +43 -51
  160. package/src/subscribable.ts +5 -5
  161. package/src/tests/hydration.test.tsx +7 -3
  162. package/src/tests/infiniteQueryBehavior.test.tsx +9 -0
  163. package/src/tests/query.test.tsx +1 -1
  164. package/src/tests/queryCache.test.tsx +1 -19
  165. package/src/tests/queryClient.test.tsx +39 -3
  166. package/src/tests/queryObserver.test.tsx +121 -0
  167. package/src/types.ts +15 -20
  168. package/build/lib/focusManager.esm.js.map +0 -1
  169. package/build/lib/focusManager.mjs +0 -71
  170. package/build/lib/hydration.esm.js +0 -98
  171. package/build/lib/hydration.esm.js.map +0 -1
  172. package/build/lib/hydration.mjs.map +0 -1
  173. package/build/lib/index.esm.js +0 -14
  174. package/build/lib/index.esm.js.map +0 -1
  175. package/build/lib/index.mjs +0 -14
  176. package/build/lib/index.mjs.map +0 -1
  177. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  178. package/build/lib/infiniteQueryBehavior.mjs +0 -125
  179. package/build/lib/infiniteQueryBehavior.mjs.map +0 -1
  180. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  181. package/build/lib/infiniteQueryObserver.mjs +0 -75
  182. package/build/lib/mutation.esm.js.map +0 -1
  183. package/build/lib/mutation.mjs +0 -234
  184. package/build/lib/mutationCache.esm.js.map +0 -1
  185. package/build/lib/mutationCache.mjs +0 -82
  186. package/build/lib/mutationCache.mjs.map +0 -1
  187. package/build/lib/mutationObserver.esm.js.map +0 -1
  188. package/build/lib/mutationObserver.mjs +0 -96
  189. package/build/lib/mutationObserver.mjs.map +0 -1
  190. package/build/lib/notifyManager.esm.js.map +0 -1
  191. package/build/lib/notifyManager.mjs +0 -89
  192. package/build/lib/onlineManager.esm.js.map +0 -1
  193. package/build/lib/onlineManager.mjs +0 -73
  194. package/build/lib/queriesObserver.esm.js.map +0 -1
  195. package/build/lib/queriesObserver.mjs +0 -136
  196. package/build/lib/queriesObserver.mjs.map +0 -1
  197. package/build/lib/query.esm.js +0 -420
  198. package/build/lib/query.esm.js.map +0 -1
  199. package/build/lib/query.mjs.map +0 -1
  200. package/build/lib/queryCache.esm.js +0 -101
  201. package/build/lib/queryCache.esm.js.map +0 -1
  202. package/build/lib/queryCache.mjs.map +0 -1
  203. package/build/lib/queryClient.esm.js.map +0 -1
  204. package/build/lib/queryClient.mjs +0 -277
  205. package/build/lib/queryClient.mjs.map +0 -1
  206. package/build/lib/queryObserver.esm.js +0 -440
  207. package/build/lib/queryObserver.esm.js.map +0 -1
  208. package/build/lib/queryObserver.mjs.map +0 -1
  209. package/build/lib/removable.esm.js.map +0 -1
  210. package/build/lib/removable.mjs +0 -29
  211. package/build/lib/retryer.esm.js.map +0 -1
  212. package/build/lib/retryer.mjs +0 -150
  213. package/build/lib/subscribable.esm.js.map +0 -1
  214. package/build/lib/subscribable.mjs +0 -26
  215. package/build/lib/subscribable.mjs.map +0 -1
  216. package/build/lib/utils.esm.js.map +0 -1
  217. package/build/lib/utils.mjs +0 -227
  218. package/build/umd/index.development.js +0 -2682
  219. package/build/umd/index.development.js.map +0 -1
  220. package/build/umd/index.production.js +0 -2
  221. package/build/umd/index.production.js.map +0 -1
@@ -1,12 +1,12 @@
1
- 'use strict';
1
+ import { functionalUpdate, noop, hashKey, partialMatchKey, hashQueryKeyByOptions } from './utils.js';
2
+ import { QueryCache } from './queryCache.js';
3
+ import { MutationCache } from './mutationCache.js';
4
+ import { focusManager } from './focusManager.js';
5
+ import { onlineManager } from './onlineManager.js';
6
+ import { notifyManager } from './notifyManager.js';
7
+ import { infiniteQueryBehavior } from './infiniteQueryBehavior.js';
2
8
 
3
- var utils = require('./utils.js');
4
- var queryCache = require('./queryCache.js');
5
- var mutationCache = require('./mutationCache.js');
6
- var focusManager = require('./focusManager.js');
7
- var onlineManager = require('./onlineManager.js');
8
- var notifyManager = require('./notifyManager.js');
9
- var infiniteQueryBehavior = require('./infiniteQueryBehavior.js');
9
+ // TYPES
10
10
 
11
11
  // CLASS
12
12
 
@@ -20,8 +20,8 @@ class QueryClient {
20
20
  #unsubscribeFocus;
21
21
  #unsubscribeOnline;
22
22
  constructor(config = {}) {
23
- this.#queryCache = config.queryCache || new queryCache.QueryCache();
24
- this.#mutationCache = config.mutationCache || new mutationCache.MutationCache();
23
+ this.#queryCache = config.queryCache || new QueryCache();
24
+ this.#mutationCache = config.mutationCache || new MutationCache();
25
25
  this.#defaultOptions = config.defaultOptions || {};
26
26
  this.#queryDefaults = new Map();
27
27
  this.#mutationDefaults = new Map();
@@ -30,14 +30,14 @@ class QueryClient {
30
30
  mount() {
31
31
  this.#mountCount++;
32
32
  if (this.#mountCount !== 1) return;
33
- this.#unsubscribeFocus = focusManager.focusManager.subscribe(() => {
34
- if (focusManager.focusManager.isFocused()) {
33
+ this.#unsubscribeFocus = focusManager.subscribe(() => {
34
+ if (focusManager.isFocused()) {
35
35
  this.resumePausedMutations();
36
36
  this.#queryCache.onFocus();
37
37
  }
38
38
  });
39
- this.#unsubscribeOnline = onlineManager.onlineManager.subscribe(() => {
40
- if (onlineManager.onlineManager.isOnline()) {
39
+ this.#unsubscribeOnline = onlineManager.subscribe(() => {
40
+ if (onlineManager.isOnline()) {
41
41
  this.resumePausedMutations();
42
42
  this.#queryCache.onOnline();
43
43
  }
@@ -86,7 +86,7 @@ class QueryClient {
86
86
  queryKey
87
87
  });
88
88
  const prevData = query?.state.data;
89
- const data = utils.functionalUpdate(updater, prevData);
89
+ const data = functionalUpdate(updater, prevData);
90
90
  if (typeof data === 'undefined') {
91
91
  return undefined;
92
92
  }
@@ -99,7 +99,7 @@ class QueryClient {
99
99
  });
100
100
  }
101
101
  setQueriesData(filters, updater, options) {
102
- return notifyManager.notifyManager.batch(() => this.getQueryCache().findAll(filters).map(({
102
+ return notifyManager.batch(() => this.getQueryCache().findAll(filters).map(({
103
103
  queryKey
104
104
  }) => [queryKey, this.setQueryData(queryKey, updater, options)]));
105
105
  }
@@ -110,7 +110,7 @@ class QueryClient {
110
110
  }
111
111
  removeQueries(filters) {
112
112
  const queryCache = this.#queryCache;
113
- notifyManager.notifyManager.batch(() => {
113
+ notifyManager.batch(() => {
114
114
  queryCache.findAll(filters).forEach(query => {
115
115
  queryCache.remove(query);
116
116
  });
@@ -122,7 +122,7 @@ class QueryClient {
122
122
  type: 'active',
123
123
  ...filters
124
124
  };
125
- return notifyManager.notifyManager.batch(() => {
125
+ return notifyManager.batch(() => {
126
126
  queryCache.findAll(filters).forEach(query => {
127
127
  query.reset();
128
128
  });
@@ -130,14 +130,15 @@ class QueryClient {
130
130
  });
131
131
  }
132
132
  cancelQueries(filters = {}, cancelOptions = {}) {
133
- if (typeof cancelOptions.revert === 'undefined') {
134
- cancelOptions.revert = true;
135
- }
136
- const promises = notifyManager.notifyManager.batch(() => this.#queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));
137
- return Promise.all(promises).then(utils.noop).catch(utils.noop);
133
+ const defaultedCancelOptions = {
134
+ revert: true,
135
+ ...cancelOptions
136
+ };
137
+ const promises = notifyManager.batch(() => this.#queryCache.findAll(filters).map(query => query.cancel(defaultedCancelOptions)));
138
+ return Promise.all(promises).then(noop).catch(noop);
138
139
  }
139
140
  invalidateQueries(filters = {}, options = {}) {
140
- return notifyManager.notifyManager.batch(() => {
141
+ return notifyManager.batch(() => {
141
142
  this.#queryCache.findAll(filters).forEach(query => {
142
143
  query.invalidate();
143
144
  });
@@ -152,15 +153,18 @@ class QueryClient {
152
153
  });
153
154
  }
154
155
  refetchQueries(filters = {}, options) {
155
- const promises = notifyManager.notifyManager.batch(() => this.#queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => query.fetch(undefined, {
156
+ const fetchOptions = {
156
157
  ...options,
157
158
  cancelRefetch: options?.cancelRefetch ?? true
158
- })));
159
- let promise = Promise.all(promises).then(utils.noop);
160
- if (!options?.throwOnError) {
161
- promise = promise.catch(utils.noop);
162
- }
163
- return promise;
159
+ };
160
+ const promises = notifyManager.batch(() => this.#queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {
161
+ let promise = query.fetch(undefined, fetchOptions);
162
+ if (!fetchOptions.throwOnError) {
163
+ promise = promise.catch(noop);
164
+ }
165
+ return query.state.fetchStatus === 'paused' ? Promise.resolve() : promise;
166
+ }));
167
+ return Promise.all(promises).then(noop);
164
168
  }
165
169
  fetchQuery(options) {
166
170
  const defaultedOptions = this.defaultQueryOptions(options);
@@ -173,14 +177,14 @@ class QueryClient {
173
177
  return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);
174
178
  }
175
179
  prefetchQuery(options) {
176
- return this.fetchQuery(options).then(utils.noop).catch(utils.noop);
180
+ return this.fetchQuery(options).then(noop).catch(noop);
177
181
  }
178
182
  fetchInfiniteQuery(options) {
179
- options.behavior = infiniteQueryBehavior.infiniteQueryBehavior();
183
+ options.behavior = infiniteQueryBehavior();
180
184
  return this.fetchQuery(options);
181
185
  }
182
186
  prefetchInfiniteQuery(options) {
183
- return this.fetchInfiniteQuery(options).then(utils.noop).catch(utils.noop);
187
+ return this.fetchInfiniteQuery(options).then(noop).catch(noop);
184
188
  }
185
189
  resumePausedMutations() {
186
190
  return this.#mutationCache.resumePausedMutations();
@@ -198,7 +202,7 @@ class QueryClient {
198
202
  this.#defaultOptions = options;
199
203
  }
200
204
  setQueryDefaults(queryKey, options) {
201
- this.#queryDefaults.set(utils.hashKey(queryKey), {
205
+ this.#queryDefaults.set(hashKey(queryKey), {
202
206
  queryKey,
203
207
  defaultOptions: options
204
208
  });
@@ -207,7 +211,7 @@ class QueryClient {
207
211
  const defaults = [...this.#queryDefaults.values()];
208
212
  let result = {};
209
213
  defaults.forEach(queryDefault => {
210
- if (utils.partialMatchKey(queryKey, queryDefault.queryKey)) {
214
+ if (partialMatchKey(queryKey, queryDefault.queryKey)) {
211
215
  result = {
212
216
  ...result,
213
217
  ...queryDefault.defaultOptions
@@ -217,7 +221,7 @@ class QueryClient {
217
221
  return result;
218
222
  }
219
223
  setMutationDefaults(mutationKey, options) {
220
- this.#mutationDefaults.set(utils.hashKey(mutationKey), {
224
+ this.#mutationDefaults.set(hashKey(mutationKey), {
221
225
  mutationKey,
222
226
  defaultOptions: options
223
227
  });
@@ -226,7 +230,7 @@ class QueryClient {
226
230
  const defaults = [...this.#mutationDefaults.values()];
227
231
  let result = {};
228
232
  defaults.forEach(queryDefault => {
229
- if (utils.partialMatchKey(mutationKey, queryDefault.mutationKey)) {
233
+ if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {
230
234
  result = {
231
235
  ...result,
232
236
  ...queryDefault.defaultOptions
@@ -246,15 +250,15 @@ class QueryClient {
246
250
  _defaulted: true
247
251
  };
248
252
  if (!defaultedOptions.queryHash) {
249
- defaultedOptions.queryHash = utils.hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);
253
+ defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);
250
254
  }
251
255
 
252
256
  // dependent default values
253
257
  if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {
254
258
  defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';
255
259
  }
256
- if (typeof defaultedOptions.throwErrors === 'undefined') {
257
- defaultedOptions.throwErrors = !!defaultedOptions.suspense;
260
+ if (typeof defaultedOptions.throwOnError === 'undefined') {
261
+ defaultedOptions.throwOnError = !!defaultedOptions.suspense;
258
262
  }
259
263
  return defaultedOptions;
260
264
  }
@@ -275,5 +279,5 @@ class QueryClient {
275
279
  }
276
280
  }
277
281
 
278
- exports.QueryClient = QueryClient;
282
+ export { QueryClient };
279
283
  //# sourceMappingURL=queryClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryClient.js","sources":["../../src/queryClient.ts"],"sourcesContent":["import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashKey,\n noop,\n partialMatchKey,\n hashQueryKeyByOptions,\n functionalUpdate,\n} from './utils'\nimport type {\n QueryClientConfig,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n DefaultError,\n} from './types'\nimport type { QueryState } from './query'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport type { CancelOptions, DefaultedQueryObserverOptions } from './types'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions<any, any, any>\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions<any, any, any, any>\n}\n\n// CLASS\n\nexport class QueryClient {\n #queryCache: QueryCache\n #mutationCache: MutationCache\n #defaultOptions: DefaultOptions\n #queryDefaults: Map<string, QueryDefaults>\n #mutationDefaults: Map<string, MutationDefaults>\n #mountCount: number\n #unsubscribeFocus?: () => void\n #unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.#queryCache = config.queryCache || new QueryCache()\n this.#mutationCache = config.mutationCache || new MutationCache()\n this.#defaultOptions = config.defaultOptions || {}\n this.#queryDefaults = new Map()\n this.#mutationDefaults = new Map()\n this.#mountCount = 0\n }\n\n mount(): void {\n this.#mountCount++\n if (this.#mountCount !== 1) return\n\n this.#unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.#queryCache.onFocus()\n }\n })\n this.#unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.#queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.#mountCount--\n if (this.#mountCount !== 0) return\n\n this.#unsubscribeFocus?.()\n this.#unsubscribeFocus = undefined\n\n this.#unsubscribeOnline?.()\n this.#unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number {\n return this.#queryCache.findAll({ ...filters, fetchStatus: 'fetching' })\n .length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.#mutationCache.findAll({ ...filters, status: 'pending' }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): TQueryFnData | undefined {\n return this.#queryCache.find<TQueryFnData>({ queryKey })?.state.data\n }\n\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const cachedData = this.getQueryData<TData>(options.queryKey)\n\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(options)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.#queryCache.find<TQueryFnData>({ queryKey })\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const defaultedOptions = this.defaultQueryOptions<\n any,\n any,\n unknown,\n any,\n QueryKey\n >({ queryKey })\n\n return this.#queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = DefaultError>(\n queryKey: QueryKey,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.#queryCache.find<TQueryFnData, TError>({ queryKey })?.state\n }\n\n removeQueries(filters?: QueryFilters): void {\n const queryCache = this.#queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void> {\n const queryCache = this.#queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(\n filters: QueryFilters = {},\n cancelOptions: CancelOptions = {},\n ): Promise<void> {\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters: InvalidateQueryFilters = {},\n options: InvalidateOptions = {},\n ): Promise<void> {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries(\n filters: RefetchQueryFilters = {},\n options?: RefetchOptions,\n ): Promise<void> {\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options: FetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<TData> {\n const defaultedOptions = this.defaultQueryOptions(options)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.#queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(options).then(noop).catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData,\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 ): Promise<InfiniteData<TData>> {\n options.behavior = infiniteQueryBehavior<TQueryFnData, TError, TData>()\n return this.fetchQuery(options)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData,\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 ): Promise<void> {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop)\n }\n\n resumePausedMutations(): Promise<unknown> {\n return this.#mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.#queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.#mutationCache\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.#defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.#defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: Partial<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options,\n })\n }\n\n getQueryDefaults(\n queryKey: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> {\n const defaults = [...this.#queryDefaults.values()]\n\n let result: QueryObserverOptions<any, any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n return result\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: Omit<MutationObserverOptions<any, any, any, any>, 'mutationKey'>,\n ): void {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options,\n })\n }\n\n getMutationDefaults(\n mutationKey: MutationKey,\n ): MutationObserverOptions<any, any, any, any> {\n const defaults = [...this.#mutationDefaults.values()]\n\n let result: MutationObserverOptions<any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n\n return result\n }\n\n defaultQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options?:\n | QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...(options?.queryKey && this.getQueryDefaults(options.queryKey)),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.throwErrors === 'undefined') {\n defaultedOptions.throwErrors = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.#defaultOptions.mutations,\n ...(options?.mutationKey &&\n this.getMutationDefaults(options.mutationKey)),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.#queryCache.clear()\n this.#mutationCache.clear()\n }\n}\n"],"names":["QueryClient","constructor","config","queryCache","QueryCache","mutationCache","MutationCache","defaultOptions","Map","mount","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","onlineManager","isOnline","onOnline","unmount","undefined","isFetching","filters","findAll","fetchStatus","length","isMutating","status","getQueryData","queryKey","find","state","data","ensureQueryData","options","cachedData","Promise","resolve","fetchQuery","getQueriesData","getQueryCache","map","setQueryData","updater","query","prevData","functionalUpdate","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","revert","promises","cancel","all","then","noop","catch","invalidateQueries","invalidate","refetchType","filter","isDisabled","fetch","cancelRefetch","promise","throwOnError","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","set","hashKey","getQueryDefaults","defaults","values","result","queryDefault","partialMatchKey","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","throwErrors","suspense","defaultMutationOptions","mutations","clear"],"mappings":"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"}
1
+ {"version":3,"file":"queryClient.js","sources":["../../src/queryClient.ts"],"sourcesContent":["import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashKey,\n noop,\n partialMatchKey,\n hashQueryKeyByOptions,\n functionalUpdate,\n} from './utils'\nimport type {\n QueryClientConfig,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n DefaultError,\n CancelOptions,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryState } from './query'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions<any, any, any>\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions<any, any, any, any>\n}\n\n// CLASS\n\nexport class QueryClient {\n #queryCache: QueryCache\n #mutationCache: MutationCache\n #defaultOptions: DefaultOptions\n #queryDefaults: Map<string, QueryDefaults>\n #mutationDefaults: Map<string, MutationDefaults>\n #mountCount: number\n #unsubscribeFocus?: () => void\n #unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.#queryCache = config.queryCache || new QueryCache()\n this.#mutationCache = config.mutationCache || new MutationCache()\n this.#defaultOptions = config.defaultOptions || {}\n this.#queryDefaults = new Map()\n this.#mutationDefaults = new Map()\n this.#mountCount = 0\n }\n\n mount(): void {\n this.#mountCount++\n if (this.#mountCount !== 1) return\n\n this.#unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.#queryCache.onFocus()\n }\n })\n this.#unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.#queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.#mountCount--\n if (this.#mountCount !== 0) return\n\n this.#unsubscribeFocus?.()\n this.#unsubscribeFocus = undefined\n\n this.#unsubscribeOnline?.()\n this.#unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number {\n return this.#queryCache.findAll({ ...filters, fetchStatus: 'fetching' })\n .length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.#mutationCache.findAll({ ...filters, status: 'pending' }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): TQueryFnData | undefined {\n return this.#queryCache.find<TQueryFnData>({ queryKey })?.state.data\n }\n\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const cachedData = this.getQueryData<TData>(options.queryKey)\n\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(options)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.#queryCache.find<TQueryFnData>({ queryKey })\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const defaultedOptions = this.defaultQueryOptions<\n any,\n any,\n unknown,\n any,\n QueryKey\n >({ queryKey })\n\n return this.#queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = DefaultError>(\n queryKey: QueryKey,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.#queryCache.find<TQueryFnData, TError>({ queryKey })?.state\n }\n\n removeQueries(filters?: QueryFilters): void {\n const queryCache = this.#queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void> {\n const queryCache = this.#queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(\n filters: QueryFilters = {},\n cancelOptions: CancelOptions = {},\n ): Promise<void> {\n const defaultedCancelOptions = { revert: true, ...cancelOptions }\n\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .map((query) => query.cancel(defaultedCancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters: InvalidateQueryFilters = {},\n options: InvalidateOptions = {},\n ): Promise<void> {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries(\n filters: RefetchQueryFilters = {},\n options?: RefetchOptions,\n ): Promise<void> {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n }\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) => {\n let promise = query.fetch(undefined, fetchOptions)\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop)\n }\n return query.state.fetchStatus === 'paused'\n ? Promise.resolve()\n : promise\n }),\n )\n\n return Promise.all(promises).then(noop)\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options: FetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<TData> {\n const defaultedOptions = this.defaultQueryOptions(options)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.#queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(options).then(noop).catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData,\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 ): Promise<InfiniteData<TData>> {\n options.behavior = infiniteQueryBehavior<TQueryFnData, TError, TData>()\n return this.fetchQuery(options)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData,\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 ): Promise<void> {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop)\n }\n\n resumePausedMutations(): Promise<unknown> {\n return this.#mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.#queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.#mutationCache\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.#defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.#defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: Partial<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options,\n })\n }\n\n getQueryDefaults(\n queryKey: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> {\n const defaults = [...this.#queryDefaults.values()]\n\n let result: QueryObserverOptions<any, any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n return result\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: Omit<MutationObserverOptions<any, any, any, any>, 'mutationKey'>,\n ): void {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options,\n })\n }\n\n getMutationDefaults(\n mutationKey: MutationKey,\n ): MutationObserverOptions<any, any, any, any> {\n const defaults = [...this.#mutationDefaults.values()]\n\n let result: MutationObserverOptions<any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n\n return result\n }\n\n defaultQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options?:\n | QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...(options?.queryKey && this.getQueryDefaults(options.queryKey)),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.throwOnError === 'undefined') {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.#defaultOptions.mutations,\n ...(options?.mutationKey &&\n this.getMutationDefaults(options.mutationKey)),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.#queryCache.clear()\n this.#mutationCache.clear()\n }\n}\n"],"names":["QueryClient","constructor","config","queryCache","QueryCache","mutationCache","MutationCache","defaultOptions","Map","mount","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","onlineManager","isOnline","onOnline","unmount","undefined","isFetching","filters","findAll","fetchStatus","length","isMutating","status","getQueryData","queryKey","find","state","data","ensureQueryData","options","cachedData","Promise","resolve","fetchQuery","getQueriesData","getQueryCache","map","setQueryData","updater","query","prevData","functionalUpdate","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","defaultedCancelOptions","revert","promises","cancel","all","then","noop","catch","invalidateQueries","invalidate","refetchType","fetchOptions","cancelRefetch","filter","isDisabled","promise","fetch","throwOnError","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","set","hashKey","getQueryDefaults","defaults","values","result","queryDefault","partialMatchKey","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","suspense","defaultMutationOptions","mutations","clear"],"mappings":"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"}
@@ -1,20 +1,24 @@
1
- import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';
2
- import { notifyManager } from './notifyManager.mjs';
3
- import { focusManager } from './focusManager.mjs';
4
- import { Subscribable } from './subscribable.mjs';
5
- import { canFetch, isCancelledError } from './retryer.mjs';
1
+ 'use strict';
6
2
 
7
- class QueryObserver extends Subscribable {
3
+ var utils = require('./utils.cjs');
4
+ var notifyManager = require('./notifyManager.cjs');
5
+ var focusManager = require('./focusManager.cjs');
6
+ var subscribable = require('./subscribable.cjs');
7
+ var retryer = require('./retryer.cjs');
8
+
9
+ class QueryObserver extends subscribable.Subscribable {
8
10
  #client;
9
11
  #currentQuery = undefined;
10
12
  #currentQueryInitialState = undefined;
11
13
  #currentResult = undefined;
12
14
  #currentResultState;
13
15
  #currentResultOptions;
14
- #previousQueryResult;
15
16
  #selectError;
16
17
  #selectFn;
17
18
  #selectResult;
19
+ // This property keeps track of the last query with defined data.
20
+ // It will be used to pass the previous data and query to the placeholder function between renders.
21
+ #lastQueryWithDefinedData;
18
22
  #staleTimeoutId;
19
23
  #refetchIntervalId;
20
24
  #currentRefetchInterval;
@@ -31,7 +35,7 @@ class QueryObserver extends Subscribable {
31
35
  this.refetch = this.refetch.bind(this);
32
36
  }
33
37
  onSubscribe() {
34
- if (this.listeners.length === 1) {
38
+ if (this.listeners.size === 1) {
35
39
  this.#currentQuery.addObserver(this);
36
40
  if (shouldFetchOnMount(this.#currentQuery, this.options)) {
37
41
  this.#executeFetch();
@@ -40,7 +44,7 @@ class QueryObserver extends Subscribable {
40
44
  }
41
45
  }
42
46
  onUnsubscribe() {
43
- if (!this.listeners.length) {
47
+ if (!this.hasListeners()) {
44
48
  this.destroy();
45
49
  }
46
50
  }
@@ -51,7 +55,7 @@ class QueryObserver extends Subscribable {
51
55
  return shouldFetchOn(this.#currentQuery, this.options, this.options.refetchOnWindowFocus);
52
56
  }
53
57
  destroy() {
54
- this.listeners = [];
58
+ this.listeners = new Set();
55
59
  this.#clearStaleTimeout();
56
60
  this.#clearRefetchInterval();
57
61
  this.#currentQuery.removeObserver(this);
@@ -60,7 +64,7 @@ class QueryObserver extends Subscribable {
60
64
  const prevOptions = this.options;
61
65
  const prevQuery = this.#currentQuery;
62
66
  this.options = this.#client.defaultQueryOptions(options);
63
- if (!shallowEqualObjects(prevOptions, this.options)) {
67
+ if (!utils.shallowEqualObjects(prevOptions, this.options)) {
64
68
  this.#client.getQueryCache().notify({
65
69
  type: 'observerOptionsUpdated',
66
70
  query: this.#currentQuery,
@@ -150,16 +154,16 @@ class QueryObserver extends Subscribable {
150
154
  // Fetch
151
155
  let promise = this.#currentQuery.fetch(this.options, fetchOptions);
152
156
  if (!fetchOptions?.throwOnError) {
153
- promise = promise.catch(noop);
157
+ promise = promise.catch(utils.noop);
154
158
  }
155
159
  return promise;
156
160
  }
157
161
  #updateStaleTimeout() {
158
162
  this.#clearStaleTimeout();
159
- if (isServer || this.#currentResult.isStale || !isValidTimeout(this.options.staleTime)) {
163
+ if (utils.isServer || this.#currentResult.isStale || !utils.isValidTimeout(this.options.staleTime)) {
160
164
  return;
161
165
  }
162
- const time = timeUntilStale(this.#currentResult.dataUpdatedAt, this.options.staleTime);
166
+ const time = utils.timeUntilStale(this.#currentResult.dataUpdatedAt, this.options.staleTime);
163
167
 
164
168
  // The timeout is sometimes triggered 1 ms before the stale time expiration.
165
169
  // To mitigate this issue we always add 1 ms to the timeout.
@@ -171,16 +175,16 @@ class QueryObserver extends Subscribable {
171
175
  }, timeout);
172
176
  }
173
177
  #computeRefetchInterval() {
174
- return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.#currentResult.data, this.#currentQuery) : this.options.refetchInterval ?? false;
178
+ return (typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.#currentResult.data, this.#currentQuery) : this.options.refetchInterval) ?? false;
175
179
  }
176
180
  #updateRefetchInterval(nextInterval) {
177
181
  this.#clearRefetchInterval();
178
182
  this.#currentRefetchInterval = nextInterval;
179
- if (isServer || this.options.enabled === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {
183
+ if (utils.isServer || this.options.enabled === false || !utils.isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {
180
184
  return;
181
185
  }
182
186
  this.#refetchIntervalId = setInterval(() => {
183
- if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {
187
+ if (this.options.refetchIntervalInBackground || focusManager.focusManager.isFocused()) {
184
188
  this.#executeFetch();
185
189
  }
186
190
  }, this.#currentRefetchInterval);
@@ -209,7 +213,6 @@ class QueryObserver extends Subscribable {
209
213
  const prevResultOptions = this.#currentResultOptions;
210
214
  const queryChange = query !== prevQuery;
211
215
  const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;
212
- const prevQueryResult = queryChange ? this.#currentResult : this.#previousQueryResult;
213
216
  const {
214
217
  state
215
218
  } = query;
@@ -228,7 +231,7 @@ class QueryObserver extends Subscribable {
228
231
  const fetchOnMount = !mounted && shouldFetchOnMount(query, options);
229
232
  const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);
230
233
  if (fetchOnMount || fetchOptionally) {
231
- fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';
234
+ fetchStatus = retryer.canFetch(query.options.networkMode) ? 'fetching' : 'paused';
232
235
  if (!state.dataUpdatedAt) {
233
236
  status = 'pending';
234
237
  }
@@ -247,7 +250,7 @@ class QueryObserver extends Subscribable {
247
250
  try {
248
251
  this.#selectFn = options.select;
249
252
  data = options.select(state.data);
250
- data = replaceData(prevResult?.data, data, options);
253
+ data = utils.replaceData(prevResult?.data, data, options);
251
254
  this.#selectResult = data;
252
255
  this.#selectError = null;
253
256
  } catch (selectError) {
@@ -268,7 +271,7 @@ class QueryObserver extends Subscribable {
268
271
  if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {
269
272
  placeholderData = prevResult.data;
270
273
  } else {
271
- placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(prevQueryResult?.data) : options.placeholderData;
274
+ placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(this.#lastQueryWithDefinedData?.state.data, this.#lastQueryWithDefinedData) : options.placeholderData;
272
275
  if (options.select && typeof placeholderData !== 'undefined') {
273
276
  try {
274
277
  placeholderData = options.select(placeholderData);
@@ -280,7 +283,7 @@ class QueryObserver extends Subscribable {
280
283
  }
281
284
  if (typeof placeholderData !== 'undefined') {
282
285
  status = 'success';
283
- data = replaceData(prevResult?.data, placeholderData, options);
286
+ data = utils.replaceData(prevResult?.data, placeholderData, options);
284
287
  isPlaceholderData = true;
285
288
  }
286
289
  }
@@ -329,9 +332,12 @@ class QueryObserver extends Subscribable {
329
332
  this.#currentResultOptions = this.options;
330
333
 
331
334
  // Only notify and update result if something has changed
332
- if (shallowEqualObjects(nextResult, prevResult)) {
335
+ if (utils.shallowEqualObjects(nextResult, prevResult)) {
333
336
  return;
334
337
  }
338
+ if (this.#currentResultState.data !== undefined) {
339
+ this.#lastQueryWithDefinedData = this.#currentQuery;
340
+ }
335
341
  this.#currentResult = nextResult;
336
342
 
337
343
  // Determine which callbacks to trigger
@@ -347,7 +353,7 @@ class QueryObserver extends Subscribable {
347
353
  return true;
348
354
  }
349
355
  const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps);
350
- if (this.options.throwErrors) {
356
+ if (this.options.throwOnError) {
351
357
  includedProps.add('error');
352
358
  }
353
359
  return Object.keys(this.#currentResult).some(key => {
@@ -372,36 +378,20 @@ class QueryObserver extends Subscribable {
372
378
  const prevQuery = this.#currentQuery;
373
379
  this.#currentQuery = query;
374
380
  this.#currentQueryInitialState = query.state;
375
- this.#previousQueryResult = this.#currentResult;
376
381
  if (this.hasListeners()) {
377
382
  prevQuery?.removeObserver(this);
378
383
  query.addObserver(this);
379
384
  }
380
385
  }
381
- onQueryUpdate(action) {
382
- const notifyOptions = {};
383
- if (action.type === 'success') {
384
- notifyOptions.onSuccess = !action.manual;
385
- } else if (action.type === 'error' && !isCancelledError(action.error)) {
386
- notifyOptions.onError = true;
387
- }
388
- this.#updateResult(notifyOptions);
386
+ onQueryUpdate() {
387
+ this.#updateResult();
389
388
  if (this.hasListeners()) {
390
389
  this.#updateTimers();
391
390
  }
392
391
  }
393
392
  #notify(notifyOptions) {
394
- notifyManager.batch(() => {
395
- // First trigger the configuration callbacks
396
- if (notifyOptions.onSuccess) {
397
- this.options.onSuccess?.(this.#currentResult.data);
398
- this.options.onSettled?.(this.#currentResult.data, null);
399
- } else if (notifyOptions.onError) {
400
- this.options.onError?.(this.#currentResult.error);
401
- this.options.onSettled?.(undefined, this.#currentResult.error);
402
- }
403
-
404
- // Then trigger the listeners
393
+ notifyManager.notifyManager.batch(() => {
394
+ // First, trigger the listeners
405
395
  if (notifyOptions.listeners) {
406
396
  this.listeners.forEach(listener => {
407
397
  listener(this.#currentResult);
@@ -436,5 +426,5 @@ function isStale(query, options) {
436
426
  return query.isStaleByTime(options.staleTime);
437
427
  }
438
428
 
439
- export { QueryObserver };
440
- //# sourceMappingURL=queryObserver.mjs.map
429
+ exports.QueryObserver = QueryObserver;
430
+ //# sourceMappingURL=queryObserver.cjs.map