@tanstack/query-core 5.91.0 → 5.94.4

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 (298) hide show
  1. package/package.json +1 -1
  2. package/src/query.ts +17 -6
  3. package/src/queryObserver.ts +1 -1
  4. package/src/streamedQuery.ts +2 -4
  5. package/build/legacy/_tsup-dts-rollup.d.cts +0 -2227
  6. package/build/legacy/_tsup-dts-rollup.d.ts +0 -2227
  7. package/build/legacy/chunk-PXG64RU4.js +0 -25
  8. package/build/legacy/chunk-PXG64RU4.js.map +0 -1
  9. package/build/legacy/environmentManager.cjs +0 -48
  10. package/build/legacy/environmentManager.cjs.map +0 -1
  11. package/build/legacy/environmentManager.d.cts +0 -2
  12. package/build/legacy/environmentManager.d.ts +0 -2
  13. package/build/legacy/environmentManager.js +0 -25
  14. package/build/legacy/environmentManager.js.map +0 -1
  15. package/build/legacy/focusManager.cjs +0 -107
  16. package/build/legacy/focusManager.cjs.map +0 -1
  17. package/build/legacy/focusManager.d.cts +0 -2
  18. package/build/legacy/focusManager.d.ts +0 -2
  19. package/build/legacy/focusManager.js +0 -80
  20. package/build/legacy/focusManager.js.map +0 -1
  21. package/build/legacy/hydration.cjs +0 -178
  22. package/build/legacy/hydration.cjs.map +0 -1
  23. package/build/legacy/hydration.d.cts +0 -7
  24. package/build/legacy/hydration.d.ts +0 -7
  25. package/build/legacy/hydration.js +0 -152
  26. package/build/legacy/hydration.js.map +0 -1
  27. package/build/legacy/index.cjs +0 -113
  28. package/build/legacy/index.cjs.map +0 -1
  29. package/build/legacy/index.d.cts +0 -142
  30. package/build/legacy/index.d.ts +0 -142
  31. package/build/legacy/index.js +0 -75
  32. package/build/legacy/index.js.map +0 -1
  33. package/build/legacy/infiniteQueryBehavior.cjs +0 -146
  34. package/build/legacy/infiniteQueryBehavior.cjs.map +0 -1
  35. package/build/legacy/infiniteQueryBehavior.d.cts +0 -3
  36. package/build/legacy/infiniteQueryBehavior.d.ts +0 -3
  37. package/build/legacy/infiniteQueryBehavior.js +0 -126
  38. package/build/legacy/infiniteQueryBehavior.js.map +0 -1
  39. package/build/legacy/infiniteQueryObserver.cjs +0 -93
  40. package/build/legacy/infiniteQueryObserver.cjs.map +0 -1
  41. package/build/legacy/infiniteQueryObserver.d.cts +0 -1
  42. package/build/legacy/infiniteQueryObserver.d.ts +0 -1
  43. package/build/legacy/infiniteQueryObserver.js +0 -74
  44. package/build/legacy/infiniteQueryObserver.js.map +0 -1
  45. package/build/legacy/mutation.cjs +0 -333
  46. package/build/legacy/mutation.cjs.map +0 -1
  47. package/build/legacy/mutation.d.cts +0 -4
  48. package/build/legacy/mutation.d.ts +0 -4
  49. package/build/legacy/mutation.js +0 -306
  50. package/build/legacy/mutation.js.map +0 -1
  51. package/build/legacy/mutationCache.cjs +0 -170
  52. package/build/legacy/mutationCache.cjs.map +0 -1
  53. package/build/legacy/mutationCache.d.cts +0 -2
  54. package/build/legacy/mutationCache.d.ts +0 -2
  55. package/build/legacy/mutationCache.js +0 -137
  56. package/build/legacy/mutationCache.js.map +0 -1
  57. package/build/legacy/mutationObserver.cjs +0 -190
  58. package/build/legacy/mutationObserver.cjs.map +0 -1
  59. package/build/legacy/mutationObserver.d.cts +0 -1
  60. package/build/legacy/mutationObserver.d.ts +0 -1
  61. package/build/legacy/mutationObserver.js +0 -164
  62. package/build/legacy/mutationObserver.js.map +0 -1
  63. package/build/legacy/notifyManager.cjs +0 -113
  64. package/build/legacy/notifyManager.cjs.map +0 -1
  65. package/build/legacy/notifyManager.d.cts +0 -3
  66. package/build/legacy/notifyManager.d.ts +0 -3
  67. package/build/legacy/notifyManager.js +0 -88
  68. package/build/legacy/notifyManager.js.map +0 -1
  69. package/build/legacy/onlineManager.cjs +0 -96
  70. package/build/legacy/onlineManager.cjs.map +0 -1
  71. package/build/legacy/onlineManager.d.cts +0 -2
  72. package/build/legacy/onlineManager.d.ts +0 -2
  73. package/build/legacy/onlineManager.js +0 -69
  74. package/build/legacy/onlineManager.js.map +0 -1
  75. package/build/legacy/queriesObserver.cjs +0 -260
  76. package/build/legacy/queriesObserver.cjs.map +0 -1
  77. package/build/legacy/queriesObserver.d.cts +0 -2
  78. package/build/legacy/queriesObserver.d.ts +0 -2
  79. package/build/legacy/queriesObserver.js +0 -234
  80. package/build/legacy/queriesObserver.js.map +0 -1
  81. package/build/legacy/query.cjs +0 -478
  82. package/build/legacy/query.cjs.map +0 -1
  83. package/build/legacy/query.d.cts +0 -10
  84. package/build/legacy/query.d.ts +0 -10
  85. package/build/legacy/query.js +0 -459
  86. package/build/legacy/query.js.map +0 -1
  87. package/build/legacy/queryCache.cjs +0 -131
  88. package/build/legacy/queryCache.cjs.map +0 -1
  89. package/build/legacy/queryCache.d.cts +0 -3
  90. package/build/legacy/queryCache.d.ts +0 -3
  91. package/build/legacy/queryCache.js +0 -105
  92. package/build/legacy/queryCache.js.map +0 -1
  93. package/build/legacy/queryClient.cjs +0 -349
  94. package/build/legacy/queryClient.cjs.map +0 -1
  95. package/build/legacy/queryClient.d.cts +0 -1
  96. package/build/legacy/queryClient.d.ts +0 -1
  97. package/build/legacy/queryClient.js +0 -324
  98. package/build/legacy/queryClient.js.map +0 -1
  99. package/build/legacy/queryObserver.cjs +0 -516
  100. package/build/legacy/queryObserver.cjs.map +0 -1
  101. package/build/legacy/queryObserver.d.cts +0 -1
  102. package/build/legacy/queryObserver.d.ts +0 -1
  103. package/build/legacy/queryObserver.js +0 -498
  104. package/build/legacy/queryObserver.js.map +0 -1
  105. package/build/legacy/removable.cjs +0 -70
  106. package/build/legacy/removable.cjs.map +0 -1
  107. package/build/legacy/removable.d.cts +0 -1
  108. package/build/legacy/removable.d.ts +0 -1
  109. package/build/legacy/removable.js +0 -44
  110. package/build/legacy/removable.js.map +0 -1
  111. package/build/legacy/retryer.cjs +0 -166
  112. package/build/legacy/retryer.cjs.map +0 -1
  113. package/build/legacy/retryer.d.cts +0 -7
  114. package/build/legacy/retryer.d.ts +0 -7
  115. package/build/legacy/retryer.js +0 -140
  116. package/build/legacy/retryer.js.map +0 -1
  117. package/build/legacy/streamedQuery.cjs +0 -82
  118. package/build/legacy/streamedQuery.cjs.map +0 -1
  119. package/build/legacy/streamedQuery.d.cts +0 -1
  120. package/build/legacy/streamedQuery.d.ts +0 -1
  121. package/build/legacy/streamedQuery.js +0 -59
  122. package/build/legacy/streamedQuery.js.map +0 -1
  123. package/build/legacy/subscribable.cjs +0 -51
  124. package/build/legacy/subscribable.cjs.map +0 -1
  125. package/build/legacy/subscribable.d.cts +0 -1
  126. package/build/legacy/subscribable.d.ts +0 -1
  127. package/build/legacy/subscribable.js +0 -28
  128. package/build/legacy/subscribable.js.map +0 -1
  129. package/build/legacy/thenable.cjs +0 -76
  130. package/build/legacy/thenable.cjs.map +0 -1
  131. package/build/legacy/thenable.d.cts +0 -6
  132. package/build/legacy/thenable.d.ts +0 -6
  133. package/build/legacy/thenable.js +0 -52
  134. package/build/legacy/thenable.js.map +0 -1
  135. package/build/legacy/timeoutManager.cjs +0 -110
  136. package/build/legacy/timeoutManager.cjs.map +0 -1
  137. package/build/legacy/timeoutManager.d.cts +0 -7
  138. package/build/legacy/timeoutManager.d.ts +0 -7
  139. package/build/legacy/timeoutManager.js +0 -81
  140. package/build/legacy/timeoutManager.js.map +0 -1
  141. package/build/legacy/types.cjs +0 -37
  142. package/build/legacy/types.cjs.map +0 -1
  143. package/build/legacy/types.d.cts +0 -95
  144. package/build/legacy/types.d.ts +0 -95
  145. package/build/legacy/types.js +0 -12
  146. package/build/legacy/types.js.map +0 -1
  147. package/build/legacy/utils.cjs +0 -330
  148. package/build/legacy/utils.cjs.map +0 -1
  149. package/build/legacy/utils.d.cts +0 -30
  150. package/build/legacy/utils.d.ts +0 -30
  151. package/build/legacy/utils.js +0 -283
  152. package/build/legacy/utils.js.map +0 -1
  153. package/build/modern/_tsup-dts-rollup.d.cts +0 -2227
  154. package/build/modern/_tsup-dts-rollup.d.ts +0 -2227
  155. package/build/modern/environmentManager.cjs +0 -48
  156. package/build/modern/environmentManager.cjs.map +0 -1
  157. package/build/modern/environmentManager.d.cts +0 -2
  158. package/build/modern/environmentManager.d.ts +0 -2
  159. package/build/modern/environmentManager.js +0 -23
  160. package/build/modern/environmentManager.js.map +0 -1
  161. package/build/modern/focusManager.cjs +0 -93
  162. package/build/modern/focusManager.cjs.map +0 -1
  163. package/build/modern/focusManager.d.cts +0 -2
  164. package/build/modern/focusManager.d.ts +0 -2
  165. package/build/modern/focusManager.js +0 -67
  166. package/build/modern/focusManager.js.map +0 -1
  167. package/build/modern/hydration.cjs +0 -173
  168. package/build/modern/hydration.cjs.map +0 -1
  169. package/build/modern/hydration.d.cts +0 -7
  170. package/build/modern/hydration.d.ts +0 -7
  171. package/build/modern/hydration.js +0 -145
  172. package/build/modern/hydration.js.map +0 -1
  173. package/build/modern/index.cjs +0 -113
  174. package/build/modern/index.cjs.map +0 -1
  175. package/build/modern/index.d.cts +0 -142
  176. package/build/modern/index.d.ts +0 -142
  177. package/build/modern/index.js +0 -73
  178. package/build/modern/index.js.map +0 -1
  179. package/build/modern/infiniteQueryBehavior.cjs +0 -142
  180. package/build/modern/infiniteQueryBehavior.cjs.map +0 -1
  181. package/build/modern/infiniteQueryBehavior.d.cts +0 -3
  182. package/build/modern/infiniteQueryBehavior.d.ts +0 -3
  183. package/build/modern/infiniteQueryBehavior.js +0 -120
  184. package/build/modern/infiniteQueryBehavior.js.map +0 -1
  185. package/build/modern/infiniteQueryObserver.cjs +0 -92
  186. package/build/modern/infiniteQueryObserver.cjs.map +0 -1
  187. package/build/modern/infiniteQueryObserver.d.cts +0 -1
  188. package/build/modern/infiniteQueryObserver.d.ts +0 -1
  189. package/build/modern/infiniteQueryObserver.js +0 -71
  190. package/build/modern/infiniteQueryObserver.js.map +0 -1
  191. package/build/modern/mutation.cjs +0 -307
  192. package/build/modern/mutation.cjs.map +0 -1
  193. package/build/modern/mutation.d.cts +0 -4
  194. package/build/modern/mutation.d.ts +0 -4
  195. package/build/modern/mutation.js +0 -281
  196. package/build/modern/mutation.js.map +0 -1
  197. package/build/modern/mutationCache.cjs +0 -149
  198. package/build/modern/mutationCache.cjs.map +0 -1
  199. package/build/modern/mutationCache.d.cts +0 -2
  200. package/build/modern/mutationCache.d.ts +0 -2
  201. package/build/modern/mutationCache.js +0 -124
  202. package/build/modern/mutationCache.js.map +0 -1
  203. package/build/modern/mutationObserver.cjs +0 -165
  204. package/build/modern/mutationObserver.cjs.map +0 -1
  205. package/build/modern/mutationObserver.d.cts +0 -1
  206. package/build/modern/mutationObserver.d.ts +0 -1
  207. package/build/modern/mutationObserver.js +0 -140
  208. package/build/modern/mutationObserver.js.map +0 -1
  209. package/build/modern/notifyManager.cjs +0 -113
  210. package/build/modern/notifyManager.cjs.map +0 -1
  211. package/build/modern/notifyManager.d.cts +0 -3
  212. package/build/modern/notifyManager.d.ts +0 -3
  213. package/build/modern/notifyManager.js +0 -86
  214. package/build/modern/notifyManager.js.map +0 -1
  215. package/build/modern/onlineManager.cjs +0 -83
  216. package/build/modern/onlineManager.cjs.map +0 -1
  217. package/build/modern/onlineManager.d.cts +0 -2
  218. package/build/modern/onlineManager.d.ts +0 -2
  219. package/build/modern/onlineManager.js +0 -57
  220. package/build/modern/onlineManager.js.map +0 -1
  221. package/build/modern/queriesObserver.cjs +0 -237
  222. package/build/modern/queriesObserver.cjs.map +0 -1
  223. package/build/modern/queriesObserver.d.cts +0 -2
  224. package/build/modern/queriesObserver.d.ts +0 -2
  225. package/build/modern/queriesObserver.js +0 -212
  226. package/build/modern/queriesObserver.js.map +0 -1
  227. package/build/modern/query.cjs +0 -452
  228. package/build/modern/query.cjs.map +0 -1
  229. package/build/modern/query.d.cts +0 -10
  230. package/build/modern/query.d.ts +0 -10
  231. package/build/modern/query.js +0 -434
  232. package/build/modern/query.js.map +0 -1
  233. package/build/modern/queryCache.cjs +0 -122
  234. package/build/modern/queryCache.cjs.map +0 -1
  235. package/build/modern/queryCache.d.cts +0 -3
  236. package/build/modern/queryCache.d.ts +0 -3
  237. package/build/modern/queryCache.js +0 -97
  238. package/build/modern/queryCache.js.map +0 -1
  239. package/build/modern/queryClient.cjs +0 -322
  240. package/build/modern/queryClient.cjs.map +0 -1
  241. package/build/modern/queryClient.d.cts +0 -1
  242. package/build/modern/queryClient.d.ts +0 -1
  243. package/build/modern/queryClient.js +0 -305
  244. package/build/modern/queryClient.js.map +0 -1
  245. package/build/modern/queryObserver.cjs +0 -489
  246. package/build/modern/queryObserver.cjs.map +0 -1
  247. package/build/modern/queryObserver.d.cts +0 -1
  248. package/build/modern/queryObserver.d.ts +0 -1
  249. package/build/modern/queryObserver.js +0 -472
  250. package/build/modern/queryObserver.js.map +0 -1
  251. package/build/modern/removable.cjs +0 -59
  252. package/build/modern/removable.cjs.map +0 -1
  253. package/build/modern/removable.d.cts +0 -1
  254. package/build/modern/removable.d.ts +0 -1
  255. package/build/modern/removable.js +0 -34
  256. package/build/modern/removable.js.map +0 -1
  257. package/build/modern/retryer.cjs +0 -162
  258. package/build/modern/retryer.cjs.map +0 -1
  259. package/build/modern/retryer.d.cts +0 -7
  260. package/build/modern/retryer.d.ts +0 -7
  261. package/build/modern/retryer.js +0 -134
  262. package/build/modern/retryer.js.map +0 -1
  263. package/build/modern/streamedQuery.cjs +0 -82
  264. package/build/modern/streamedQuery.cjs.map +0 -1
  265. package/build/modern/streamedQuery.d.cts +0 -1
  266. package/build/modern/streamedQuery.d.ts +0 -1
  267. package/build/modern/streamedQuery.js +0 -57
  268. package/build/modern/streamedQuery.js.map +0 -1
  269. package/build/modern/subscribable.cjs +0 -51
  270. package/build/modern/subscribable.cjs.map +0 -1
  271. package/build/modern/subscribable.d.cts +0 -1
  272. package/build/modern/subscribable.d.ts +0 -1
  273. package/build/modern/subscribable.js +0 -26
  274. package/build/modern/subscribable.js.map +0 -1
  275. package/build/modern/thenable.cjs +0 -75
  276. package/build/modern/thenable.cjs.map +0 -1
  277. package/build/modern/thenable.d.cts +0 -6
  278. package/build/modern/thenable.d.ts +0 -6
  279. package/build/modern/thenable.js +0 -49
  280. package/build/modern/thenable.js.map +0 -1
  281. package/build/modern/timeoutManager.cjs +0 -98
  282. package/build/modern/timeoutManager.cjs.map +0 -1
  283. package/build/modern/timeoutManager.d.cts +0 -7
  284. package/build/modern/timeoutManager.d.ts +0 -7
  285. package/build/modern/timeoutManager.js +0 -70
  286. package/build/modern/timeoutManager.js.map +0 -1
  287. package/build/modern/types.cjs +0 -37
  288. package/build/modern/types.cjs.map +0 -1
  289. package/build/modern/types.d.cts +0 -95
  290. package/build/modern/types.d.ts +0 -95
  291. package/build/modern/types.js +0 -10
  292. package/build/modern/types.js.map +0 -1
  293. package/build/modern/utils.cjs +0 -330
  294. package/build/modern/utils.cjs.map +0 -1
  295. package/build/modern/utils.d.cts +0 -30
  296. package/build/modern/utils.d.ts +0 -30
  297. package/build/modern/utils.js +0 -281
  298. package/build/modern/utils.js.map +0 -1
@@ -1,260 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __typeError = (msg) => {
7
- throw TypeError(msg);
8
- };
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
23
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
24
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
25
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
26
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
27
-
28
- // src/queriesObserver.ts
29
- var queriesObserver_exports = {};
30
- __export(queriesObserver_exports, {
31
- QueriesObserver: () => QueriesObserver
32
- });
33
- module.exports = __toCommonJS(queriesObserver_exports);
34
- var import_notifyManager = require("./notifyManager.cjs");
35
- var import_queryObserver = require("./queryObserver.cjs");
36
- var import_subscribable = require("./subscribable.cjs");
37
- var import_utils = require("./utils.cjs");
38
- function difference(array1, array2) {
39
- const excludeSet = new Set(array2);
40
- return array1.filter((x) => !excludeSet.has(x));
41
- }
42
- function replaceAt(array, index, value) {
43
- const copy = array.slice(0);
44
- copy[index] = value;
45
- return copy;
46
- }
47
- var _client, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _lastQueryHashes, _observerMatches, _QueriesObserver_instances, trackResult_fn, combineResult_fn, findMatchingObservers_fn, onUpdate_fn, notify_fn;
48
- var QueriesObserver = class extends import_subscribable.Subscribable {
49
- constructor(client, queries, options) {
50
- super();
51
- __privateAdd(this, _QueriesObserver_instances);
52
- __privateAdd(this, _client);
53
- __privateAdd(this, _result);
54
- __privateAdd(this, _queries);
55
- __privateAdd(this, _options);
56
- __privateAdd(this, _observers);
57
- __privateAdd(this, _combinedResult);
58
- __privateAdd(this, _lastCombine);
59
- __privateAdd(this, _lastResult);
60
- __privateAdd(this, _lastQueryHashes);
61
- __privateAdd(this, _observerMatches, []);
62
- __privateSet(this, _client, client);
63
- __privateSet(this, _options, options);
64
- __privateSet(this, _queries, []);
65
- __privateSet(this, _observers, []);
66
- __privateSet(this, _result, []);
67
- this.setQueries(queries);
68
- }
69
- onSubscribe() {
70
- if (this.listeners.size === 1) {
71
- __privateGet(this, _observers).forEach((observer) => {
72
- observer.subscribe((result) => {
73
- __privateMethod(this, _QueriesObserver_instances, onUpdate_fn).call(this, observer, result);
74
- });
75
- });
76
- }
77
- }
78
- onUnsubscribe() {
79
- if (!this.listeners.size) {
80
- this.destroy();
81
- }
82
- }
83
- destroy() {
84
- this.listeners = /* @__PURE__ */ new Set();
85
- __privateGet(this, _observers).forEach((observer) => {
86
- observer.destroy();
87
- });
88
- }
89
- setQueries(queries, options) {
90
- __privateSet(this, _queries, queries);
91
- __privateSet(this, _options, options);
92
- if (process.env.NODE_ENV !== "production") {
93
- const queryHashes = queries.map(
94
- (query) => __privateGet(this, _client).defaultQueryOptions(query).queryHash
95
- );
96
- if (new Set(queryHashes).size !== queryHashes.length) {
97
- console.warn(
98
- "[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior."
99
- );
100
- }
101
- }
102
- import_notifyManager.notifyManager.batch(() => {
103
- const prevObservers = __privateGet(this, _observers);
104
- const newObserverMatches = __privateMethod(this, _QueriesObserver_instances, findMatchingObservers_fn).call(this, __privateGet(this, _queries));
105
- newObserverMatches.forEach(
106
- (match) => match.observer.setOptions(match.defaultedQueryOptions)
107
- );
108
- const newObservers = newObserverMatches.map((match) => match.observer);
109
- const newResult = newObservers.map(
110
- (observer) => observer.getCurrentResult()
111
- );
112
- const hasLengthChange = prevObservers.length !== newObservers.length;
113
- const hasIndexChange = newObservers.some(
114
- (observer, index) => observer !== prevObservers[index]
115
- );
116
- const hasStructuralChange = hasLengthChange || hasIndexChange;
117
- const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {
118
- const prev = __privateGet(this, _result)[index];
119
- return !prev || !(0, import_utils.shallowEqualObjects)(result, prev);
120
- });
121
- if (!hasStructuralChange && !hasResultChange) return;
122
- if (hasStructuralChange) {
123
- __privateSet(this, _observerMatches, newObserverMatches);
124
- __privateSet(this, _observers, newObservers);
125
- }
126
- __privateSet(this, _result, newResult);
127
- if (!this.hasListeners()) return;
128
- if (hasStructuralChange) {
129
- difference(prevObservers, newObservers).forEach((observer) => {
130
- observer.destroy();
131
- });
132
- difference(newObservers, prevObservers).forEach((observer) => {
133
- observer.subscribe((result) => {
134
- __privateMethod(this, _QueriesObserver_instances, onUpdate_fn).call(this, observer, result);
135
- });
136
- });
137
- }
138
- __privateMethod(this, _QueriesObserver_instances, notify_fn).call(this);
139
- });
140
- }
141
- getCurrentResult() {
142
- return __privateGet(this, _result);
143
- }
144
- getQueries() {
145
- return __privateGet(this, _observers).map((observer) => observer.getCurrentQuery());
146
- }
147
- getObservers() {
148
- return __privateGet(this, _observers);
149
- }
150
- getOptimisticResult(queries, combine) {
151
- const matches = __privateMethod(this, _QueriesObserver_instances, findMatchingObservers_fn).call(this, queries);
152
- const result = matches.map(
153
- (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)
154
- );
155
- const queryHashes = matches.map(
156
- (match) => match.defaultedQueryOptions.queryHash
157
- );
158
- return [
159
- result,
160
- (r) => {
161
- return __privateMethod(this, _QueriesObserver_instances, combineResult_fn).call(this, r ?? result, combine, queryHashes);
162
- },
163
- () => {
164
- return __privateMethod(this, _QueriesObserver_instances, trackResult_fn).call(this, result, matches);
165
- }
166
- ];
167
- }
168
- };
169
- _client = new WeakMap();
170
- _result = new WeakMap();
171
- _queries = new WeakMap();
172
- _options = new WeakMap();
173
- _observers = new WeakMap();
174
- _combinedResult = new WeakMap();
175
- _lastCombine = new WeakMap();
176
- _lastResult = new WeakMap();
177
- _lastQueryHashes = new WeakMap();
178
- _observerMatches = new WeakMap();
179
- _QueriesObserver_instances = new WeakSet();
180
- trackResult_fn = function(result, matches) {
181
- return matches.map((match, index) => {
182
- const observerResult = result[index];
183
- return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {
184
- matches.forEach((m) => {
185
- m.observer.trackProp(accessedProp);
186
- });
187
- }) : observerResult;
188
- });
189
- };
190
- combineResult_fn = function(input, combine, queryHashes) {
191
- if (combine) {
192
- const lastHashes = __privateGet(this, _lastQueryHashes);
193
- const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));
194
- if (!__privateGet(this, _combinedResult) || __privateGet(this, _result) !== __privateGet(this, _lastResult) || queryHashesChanged || combine !== __privateGet(this, _lastCombine)) {
195
- __privateSet(this, _lastCombine, combine);
196
- __privateSet(this, _lastResult, __privateGet(this, _result));
197
- if (queryHashes !== void 0) {
198
- __privateSet(this, _lastQueryHashes, queryHashes);
199
- }
200
- __privateSet(this, _combinedResult, (0, import_utils.replaceEqualDeep)(
201
- __privateGet(this, _combinedResult),
202
- combine(input)
203
- ));
204
- }
205
- return __privateGet(this, _combinedResult);
206
- }
207
- return input;
208
- };
209
- findMatchingObservers_fn = function(queries) {
210
- const prevObserversMap = /* @__PURE__ */ new Map();
211
- __privateGet(this, _observers).forEach((observer) => {
212
- const key = observer.options.queryHash;
213
- if (!key) return;
214
- const previousObservers = prevObserversMap.get(key);
215
- if (previousObservers) {
216
- previousObservers.push(observer);
217
- } else {
218
- prevObserversMap.set(key, [observer]);
219
- }
220
- });
221
- const observers = [];
222
- queries.forEach((options) => {
223
- var _a;
224
- const defaultedOptions = __privateGet(this, _client).defaultQueryOptions(options);
225
- const match = (_a = prevObserversMap.get(defaultedOptions.queryHash)) == null ? void 0 : _a.shift();
226
- const observer = match ?? new import_queryObserver.QueryObserver(__privateGet(this, _client), defaultedOptions);
227
- observers.push({
228
- defaultedQueryOptions: defaultedOptions,
229
- observer
230
- });
231
- });
232
- return observers;
233
- };
234
- onUpdate_fn = function(observer, result) {
235
- const index = __privateGet(this, _observers).indexOf(observer);
236
- if (index !== -1) {
237
- __privateSet(this, _result, replaceAt(__privateGet(this, _result), index, result));
238
- __privateMethod(this, _QueriesObserver_instances, notify_fn).call(this);
239
- }
240
- };
241
- notify_fn = function() {
242
- var _a;
243
- if (this.hasListeners()) {
244
- const previousResult = __privateGet(this, _combinedResult);
245
- const newTracked = __privateMethod(this, _QueriesObserver_instances, trackResult_fn).call(this, __privateGet(this, _result), __privateGet(this, _observerMatches));
246
- const newResult = __privateMethod(this, _QueriesObserver_instances, combineResult_fn).call(this, newTracked, (_a = __privateGet(this, _options)) == null ? void 0 : _a.combine);
247
- if (previousResult !== newResult) {
248
- import_notifyManager.notifyManager.batch(() => {
249
- this.listeners.forEach((listener) => {
250
- listener(__privateGet(this, _result));
251
- });
252
- });
253
- }
254
- }
255
- };
256
- // Annotate the CommonJS export names for ESM import in node:
257
- 0 && (module.exports = {
258
- QueriesObserver
259
- });
260
- //# sourceMappingURL=queriesObserver.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep, shallowEqualObjects } from './utils'\nimport type {\n DefaultedQueryObserverOptions,\n QueryObserverOptions,\n QueryObserverResult,\n} from './types'\nimport type { QueryClient } from './queryClient'\n\nfunction difference<T>(array1: Array<T>, array2: Array<T>): Array<T> {\n const excludeSet = new Set(array2)\n return array1.filter((x) => !excludeSet.has(x))\n}\n\nfunction replaceAt<T>(array: Array<T>, index: number, value: T): Array<T> {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: Array<QueryObserverResult>) => void\n\ntype CombineFn<TCombinedResult> = (\n result: Array<QueryObserverResult>,\n) => TCombinedResult\n\nexport interface QueriesObserverOptions<\n TCombinedResult = Array<QueryObserverResult>,\n> {\n combine?: CombineFn<TCombinedResult>\n}\n\nexport class QueriesObserver<\n TCombinedResult = Array<QueryObserverResult>,\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: Array<QueryObserverResult>\n #queries: Array<QueryObserverOptions>\n #options?: QueriesObserverOptions<TCombinedResult>\n #observers: Array<QueryObserver>\n #combinedResult?: TCombinedResult\n #lastCombine?: CombineFn<TCombinedResult>\n #lastResult?: Array<QueryObserverResult>\n #lastQueryHashes?: Array<string>\n #observerMatches: Array<QueryObserverMatch> = []\n\n constructor(\n client: QueryClient,\n queries: Array<QueryObserverOptions<any, any, any, any, any>>,\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#options = options\n this.#queries = []\n this.#observers = []\n this.#result = []\n\n this.setQueries(queries)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: Array<QueryObserverOptions>,\n options?: QueriesObserverOptions<TCombinedResult>,\n ): void {\n this.#queries = queries\n this.#options = options\n\n if (process.env.NODE_ENV !== 'production') {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash,\n )\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n '[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.',\n )\n }\n }\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasLengthChange = prevObservers.length !== newObservers.length\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n const hasStructuralChange = hasLengthChange || hasIndexChange\n\n const hasResultChange = hasStructuralChange\n ? true\n : newResult.some((result, index) => {\n const prev = this.#result[index]\n return !prev || !shallowEqualObjects(result, prev)\n })\n\n if (!hasStructuralChange && !hasResultChange) return\n\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches\n this.#observers = newObservers\n }\n\n this.#result = newResult\n\n if (!this.hasListeners()) return\n\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n\n this.#notify()\n })\n }\n\n getCurrentResult(): Array<QueryObserverResult> {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: Array<QueryObserverOptions>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): [\n rawResult: Array<QueryObserverResult>,\n combineResult: (r?: Array<QueryObserverResult>) => TCombinedResult,\n trackResult: () => Array<QueryObserverResult>,\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash,\n )\n\n return [\n result,\n (r?: Array<QueryObserverResult>) => {\n return this.#combineResult(r ?? result, combine, queryHashes)\n },\n () => {\n return this.#trackResult(result, matches)\n },\n ]\n }\n\n #trackResult(\n result: Array<QueryObserverResult>,\n matches: Array<QueryObserverMatch>,\n ) {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult, (accessedProp) => {\n // track property on all observers to ensure proper (synchronized) tracking (#7000)\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp)\n })\n })\n : observerResult\n })\n }\n\n #combineResult(\n input: Array<QueryObserverResult>,\n combine: CombineFn<TCombinedResult> | undefined,\n queryHashes?: Array<string>,\n ): TCombinedResult {\n if (combine) {\n const lastHashes = this.#lastQueryHashes\n const queryHashesChanged =\n queryHashes !== undefined &&\n lastHashes !== undefined &&\n (lastHashes.length !== queryHashes.length ||\n queryHashes.some((hash, i) => hash !== lastHashes[i]))\n\n if (\n !this.#combinedResult ||\n this.#result !== this.#lastResult ||\n queryHashesChanged ||\n combine !== this.#lastCombine\n ) {\n this.#lastCombine = combine\n this.#lastResult = this.#result\n\n if (queryHashes !== undefined) {\n this.#lastQueryHashes = queryHashes\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input),\n )\n }\n\n return this.#combinedResult\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: Array<QueryObserverOptions>,\n ): Array<QueryObserverMatch> {\n const prevObserversMap = new Map<string, Array<QueryObserver>>()\n\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash\n if (!key) return\n\n const previousObservers = prevObserversMap.get(key)\n\n if (previousObservers) {\n previousObservers.push(observer)\n } else {\n prevObserversMap.set(key, [observer])\n }\n })\n\n const observers: Array<QueryObserverMatch> = []\n\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift()\n const observer =\n match ?? new QueryObserver(this.#client, defaultedOptions)\n\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer,\n })\n })\n\n return observers\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult\n const newTracked = this.#trackResult(this.#result, this.#observerMatches)\n const newResult = this.#combineResult(newTracked, this.#options?.combine)\n\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n }\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"mappings":"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","names":[]}
@@ -1,2 +0,0 @@
1
- export { QueriesObserverOptions_alias_1 as QueriesObserverOptions } from './_tsup-dts-rollup.cjs';
2
- export { QueriesObserver_alias_1 as QueriesObserver } from './_tsup-dts-rollup.cjs';
@@ -1,2 +0,0 @@
1
- export { QueriesObserverOptions_alias_1 as QueriesObserverOptions } from './_tsup-dts-rollup.js';
2
- export { QueriesObserver_alias_1 as QueriesObserver } from './_tsup-dts-rollup.js';
@@ -1,234 +0,0 @@
1
- import {
2
- __privateAdd,
3
- __privateGet,
4
- __privateMethod,
5
- __privateSet
6
- } from "./chunk-PXG64RU4.js";
7
-
8
- // src/queriesObserver.ts
9
- import { notifyManager } from "./notifyManager.js";
10
- import { QueryObserver } from "./queryObserver.js";
11
- import { Subscribable } from "./subscribable.js";
12
- import { replaceEqualDeep, shallowEqualObjects } from "./utils.js";
13
- function difference(array1, array2) {
14
- const excludeSet = new Set(array2);
15
- return array1.filter((x) => !excludeSet.has(x));
16
- }
17
- function replaceAt(array, index, value) {
18
- const copy = array.slice(0);
19
- copy[index] = value;
20
- return copy;
21
- }
22
- var _client, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _lastQueryHashes, _observerMatches, _QueriesObserver_instances, trackResult_fn, combineResult_fn, findMatchingObservers_fn, onUpdate_fn, notify_fn;
23
- var QueriesObserver = class extends Subscribable {
24
- constructor(client, queries, options) {
25
- super();
26
- __privateAdd(this, _QueriesObserver_instances);
27
- __privateAdd(this, _client);
28
- __privateAdd(this, _result);
29
- __privateAdd(this, _queries);
30
- __privateAdd(this, _options);
31
- __privateAdd(this, _observers);
32
- __privateAdd(this, _combinedResult);
33
- __privateAdd(this, _lastCombine);
34
- __privateAdd(this, _lastResult);
35
- __privateAdd(this, _lastQueryHashes);
36
- __privateAdd(this, _observerMatches, []);
37
- __privateSet(this, _client, client);
38
- __privateSet(this, _options, options);
39
- __privateSet(this, _queries, []);
40
- __privateSet(this, _observers, []);
41
- __privateSet(this, _result, []);
42
- this.setQueries(queries);
43
- }
44
- onSubscribe() {
45
- if (this.listeners.size === 1) {
46
- __privateGet(this, _observers).forEach((observer) => {
47
- observer.subscribe((result) => {
48
- __privateMethod(this, _QueriesObserver_instances, onUpdate_fn).call(this, observer, result);
49
- });
50
- });
51
- }
52
- }
53
- onUnsubscribe() {
54
- if (!this.listeners.size) {
55
- this.destroy();
56
- }
57
- }
58
- destroy() {
59
- this.listeners = /* @__PURE__ */ new Set();
60
- __privateGet(this, _observers).forEach((observer) => {
61
- observer.destroy();
62
- });
63
- }
64
- setQueries(queries, options) {
65
- __privateSet(this, _queries, queries);
66
- __privateSet(this, _options, options);
67
- if (process.env.NODE_ENV !== "production") {
68
- const queryHashes = queries.map(
69
- (query) => __privateGet(this, _client).defaultQueryOptions(query).queryHash
70
- );
71
- if (new Set(queryHashes).size !== queryHashes.length) {
72
- console.warn(
73
- "[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior."
74
- );
75
- }
76
- }
77
- notifyManager.batch(() => {
78
- const prevObservers = __privateGet(this, _observers);
79
- const newObserverMatches = __privateMethod(this, _QueriesObserver_instances, findMatchingObservers_fn).call(this, __privateGet(this, _queries));
80
- newObserverMatches.forEach(
81
- (match) => match.observer.setOptions(match.defaultedQueryOptions)
82
- );
83
- const newObservers = newObserverMatches.map((match) => match.observer);
84
- const newResult = newObservers.map(
85
- (observer) => observer.getCurrentResult()
86
- );
87
- const hasLengthChange = prevObservers.length !== newObservers.length;
88
- const hasIndexChange = newObservers.some(
89
- (observer, index) => observer !== prevObservers[index]
90
- );
91
- const hasStructuralChange = hasLengthChange || hasIndexChange;
92
- const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {
93
- const prev = __privateGet(this, _result)[index];
94
- return !prev || !shallowEqualObjects(result, prev);
95
- });
96
- if (!hasStructuralChange && !hasResultChange) return;
97
- if (hasStructuralChange) {
98
- __privateSet(this, _observerMatches, newObserverMatches);
99
- __privateSet(this, _observers, newObservers);
100
- }
101
- __privateSet(this, _result, newResult);
102
- if (!this.hasListeners()) return;
103
- if (hasStructuralChange) {
104
- difference(prevObservers, newObservers).forEach((observer) => {
105
- observer.destroy();
106
- });
107
- difference(newObservers, prevObservers).forEach((observer) => {
108
- observer.subscribe((result) => {
109
- __privateMethod(this, _QueriesObserver_instances, onUpdate_fn).call(this, observer, result);
110
- });
111
- });
112
- }
113
- __privateMethod(this, _QueriesObserver_instances, notify_fn).call(this);
114
- });
115
- }
116
- getCurrentResult() {
117
- return __privateGet(this, _result);
118
- }
119
- getQueries() {
120
- return __privateGet(this, _observers).map((observer) => observer.getCurrentQuery());
121
- }
122
- getObservers() {
123
- return __privateGet(this, _observers);
124
- }
125
- getOptimisticResult(queries, combine) {
126
- const matches = __privateMethod(this, _QueriesObserver_instances, findMatchingObservers_fn).call(this, queries);
127
- const result = matches.map(
128
- (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)
129
- );
130
- const queryHashes = matches.map(
131
- (match) => match.defaultedQueryOptions.queryHash
132
- );
133
- return [
134
- result,
135
- (r) => {
136
- return __privateMethod(this, _QueriesObserver_instances, combineResult_fn).call(this, r ?? result, combine, queryHashes);
137
- },
138
- () => {
139
- return __privateMethod(this, _QueriesObserver_instances, trackResult_fn).call(this, result, matches);
140
- }
141
- ];
142
- }
143
- };
144
- _client = new WeakMap();
145
- _result = new WeakMap();
146
- _queries = new WeakMap();
147
- _options = new WeakMap();
148
- _observers = new WeakMap();
149
- _combinedResult = new WeakMap();
150
- _lastCombine = new WeakMap();
151
- _lastResult = new WeakMap();
152
- _lastQueryHashes = new WeakMap();
153
- _observerMatches = new WeakMap();
154
- _QueriesObserver_instances = new WeakSet();
155
- trackResult_fn = function(result, matches) {
156
- return matches.map((match, index) => {
157
- const observerResult = result[index];
158
- return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {
159
- matches.forEach((m) => {
160
- m.observer.trackProp(accessedProp);
161
- });
162
- }) : observerResult;
163
- });
164
- };
165
- combineResult_fn = function(input, combine, queryHashes) {
166
- if (combine) {
167
- const lastHashes = __privateGet(this, _lastQueryHashes);
168
- const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));
169
- if (!__privateGet(this, _combinedResult) || __privateGet(this, _result) !== __privateGet(this, _lastResult) || queryHashesChanged || combine !== __privateGet(this, _lastCombine)) {
170
- __privateSet(this, _lastCombine, combine);
171
- __privateSet(this, _lastResult, __privateGet(this, _result));
172
- if (queryHashes !== void 0) {
173
- __privateSet(this, _lastQueryHashes, queryHashes);
174
- }
175
- __privateSet(this, _combinedResult, replaceEqualDeep(
176
- __privateGet(this, _combinedResult),
177
- combine(input)
178
- ));
179
- }
180
- return __privateGet(this, _combinedResult);
181
- }
182
- return input;
183
- };
184
- findMatchingObservers_fn = function(queries) {
185
- const prevObserversMap = /* @__PURE__ */ new Map();
186
- __privateGet(this, _observers).forEach((observer) => {
187
- const key = observer.options.queryHash;
188
- if (!key) return;
189
- const previousObservers = prevObserversMap.get(key);
190
- if (previousObservers) {
191
- previousObservers.push(observer);
192
- } else {
193
- prevObserversMap.set(key, [observer]);
194
- }
195
- });
196
- const observers = [];
197
- queries.forEach((options) => {
198
- var _a;
199
- const defaultedOptions = __privateGet(this, _client).defaultQueryOptions(options);
200
- const match = (_a = prevObserversMap.get(defaultedOptions.queryHash)) == null ? void 0 : _a.shift();
201
- const observer = match ?? new QueryObserver(__privateGet(this, _client), defaultedOptions);
202
- observers.push({
203
- defaultedQueryOptions: defaultedOptions,
204
- observer
205
- });
206
- });
207
- return observers;
208
- };
209
- onUpdate_fn = function(observer, result) {
210
- const index = __privateGet(this, _observers).indexOf(observer);
211
- if (index !== -1) {
212
- __privateSet(this, _result, replaceAt(__privateGet(this, _result), index, result));
213
- __privateMethod(this, _QueriesObserver_instances, notify_fn).call(this);
214
- }
215
- };
216
- notify_fn = function() {
217
- var _a;
218
- if (this.hasListeners()) {
219
- const previousResult = __privateGet(this, _combinedResult);
220
- const newTracked = __privateMethod(this, _QueriesObserver_instances, trackResult_fn).call(this, __privateGet(this, _result), __privateGet(this, _observerMatches));
221
- const newResult = __privateMethod(this, _QueriesObserver_instances, combineResult_fn).call(this, newTracked, (_a = __privateGet(this, _options)) == null ? void 0 : _a.combine);
222
- if (previousResult !== newResult) {
223
- notifyManager.batch(() => {
224
- this.listeners.forEach((listener) => {
225
- listener(__privateGet(this, _result));
226
- });
227
- });
228
- }
229
- }
230
- };
231
- export {
232
- QueriesObserver
233
- };
234
- //# sourceMappingURL=queriesObserver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep, shallowEqualObjects } from './utils'\nimport type {\n DefaultedQueryObserverOptions,\n QueryObserverOptions,\n QueryObserverResult,\n} from './types'\nimport type { QueryClient } from './queryClient'\n\nfunction difference<T>(array1: Array<T>, array2: Array<T>): Array<T> {\n const excludeSet = new Set(array2)\n return array1.filter((x) => !excludeSet.has(x))\n}\n\nfunction replaceAt<T>(array: Array<T>, index: number, value: T): Array<T> {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: Array<QueryObserverResult>) => void\n\ntype CombineFn<TCombinedResult> = (\n result: Array<QueryObserverResult>,\n) => TCombinedResult\n\nexport interface QueriesObserverOptions<\n TCombinedResult = Array<QueryObserverResult>,\n> {\n combine?: CombineFn<TCombinedResult>\n}\n\nexport class QueriesObserver<\n TCombinedResult = Array<QueryObserverResult>,\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: Array<QueryObserverResult>\n #queries: Array<QueryObserverOptions>\n #options?: QueriesObserverOptions<TCombinedResult>\n #observers: Array<QueryObserver>\n #combinedResult?: TCombinedResult\n #lastCombine?: CombineFn<TCombinedResult>\n #lastResult?: Array<QueryObserverResult>\n #lastQueryHashes?: Array<string>\n #observerMatches: Array<QueryObserverMatch> = []\n\n constructor(\n client: QueryClient,\n queries: Array<QueryObserverOptions<any, any, any, any, any>>,\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#options = options\n this.#queries = []\n this.#observers = []\n this.#result = []\n\n this.setQueries(queries)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: Array<QueryObserverOptions>,\n options?: QueriesObserverOptions<TCombinedResult>,\n ): void {\n this.#queries = queries\n this.#options = options\n\n if (process.env.NODE_ENV !== 'production') {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash,\n )\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n '[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.',\n )\n }\n }\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasLengthChange = prevObservers.length !== newObservers.length\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n const hasStructuralChange = hasLengthChange || hasIndexChange\n\n const hasResultChange = hasStructuralChange\n ? true\n : newResult.some((result, index) => {\n const prev = this.#result[index]\n return !prev || !shallowEqualObjects(result, prev)\n })\n\n if (!hasStructuralChange && !hasResultChange) return\n\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches\n this.#observers = newObservers\n }\n\n this.#result = newResult\n\n if (!this.hasListeners()) return\n\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n\n this.#notify()\n })\n }\n\n getCurrentResult(): Array<QueryObserverResult> {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: Array<QueryObserverOptions>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): [\n rawResult: Array<QueryObserverResult>,\n combineResult: (r?: Array<QueryObserverResult>) => TCombinedResult,\n trackResult: () => Array<QueryObserverResult>,\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash,\n )\n\n return [\n result,\n (r?: Array<QueryObserverResult>) => {\n return this.#combineResult(r ?? result, combine, queryHashes)\n },\n () => {\n return this.#trackResult(result, matches)\n },\n ]\n }\n\n #trackResult(\n result: Array<QueryObserverResult>,\n matches: Array<QueryObserverMatch>,\n ) {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult, (accessedProp) => {\n // track property on all observers to ensure proper (synchronized) tracking (#7000)\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp)\n })\n })\n : observerResult\n })\n }\n\n #combineResult(\n input: Array<QueryObserverResult>,\n combine: CombineFn<TCombinedResult> | undefined,\n queryHashes?: Array<string>,\n ): TCombinedResult {\n if (combine) {\n const lastHashes = this.#lastQueryHashes\n const queryHashesChanged =\n queryHashes !== undefined &&\n lastHashes !== undefined &&\n (lastHashes.length !== queryHashes.length ||\n queryHashes.some((hash, i) => hash !== lastHashes[i]))\n\n if (\n !this.#combinedResult ||\n this.#result !== this.#lastResult ||\n queryHashesChanged ||\n combine !== this.#lastCombine\n ) {\n this.#lastCombine = combine\n this.#lastResult = this.#result\n\n if (queryHashes !== undefined) {\n this.#lastQueryHashes = queryHashes\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input),\n )\n }\n\n return this.#combinedResult\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: Array<QueryObserverOptions>,\n ): Array<QueryObserverMatch> {\n const prevObserversMap = new Map<string, Array<QueryObserver>>()\n\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash\n if (!key) return\n\n const previousObservers = prevObserversMap.get(key)\n\n if (previousObservers) {\n previousObservers.push(observer)\n } else {\n prevObserversMap.set(key, [observer])\n }\n })\n\n const observers: Array<QueryObserverMatch> = []\n\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift()\n const observer =\n match ?? new QueryObserver(this.#client, defaultedOptions)\n\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer,\n })\n })\n\n return observers\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult\n const newTracked = this.#trackResult(this.#result, this.#observerMatches)\n const newResult = this.#combineResult(newTracked, this.#options?.combine)\n\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n }\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"mappings":"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","names":[]}