@tanstack/query-core 5.91.2 → 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 (295) hide show
  1. package/package.json +1 -1
  2. package/build/legacy/_tsup-dts-rollup.d.cts +0 -2229
  3. package/build/legacy/_tsup-dts-rollup.d.ts +0 -2229
  4. package/build/legacy/chunk-PXG64RU4.js +0 -25
  5. package/build/legacy/chunk-PXG64RU4.js.map +0 -1
  6. package/build/legacy/environmentManager.cjs +0 -48
  7. package/build/legacy/environmentManager.cjs.map +0 -1
  8. package/build/legacy/environmentManager.d.cts +0 -2
  9. package/build/legacy/environmentManager.d.ts +0 -2
  10. package/build/legacy/environmentManager.js +0 -25
  11. package/build/legacy/environmentManager.js.map +0 -1
  12. package/build/legacy/focusManager.cjs +0 -107
  13. package/build/legacy/focusManager.cjs.map +0 -1
  14. package/build/legacy/focusManager.d.cts +0 -2
  15. package/build/legacy/focusManager.d.ts +0 -2
  16. package/build/legacy/focusManager.js +0 -80
  17. package/build/legacy/focusManager.js.map +0 -1
  18. package/build/legacy/hydration.cjs +0 -178
  19. package/build/legacy/hydration.cjs.map +0 -1
  20. package/build/legacy/hydration.d.cts +0 -7
  21. package/build/legacy/hydration.d.ts +0 -7
  22. package/build/legacy/hydration.js +0 -152
  23. package/build/legacy/hydration.js.map +0 -1
  24. package/build/legacy/index.cjs +0 -113
  25. package/build/legacy/index.cjs.map +0 -1
  26. package/build/legacy/index.d.cts +0 -142
  27. package/build/legacy/index.d.ts +0 -142
  28. package/build/legacy/index.js +0 -75
  29. package/build/legacy/index.js.map +0 -1
  30. package/build/legacy/infiniteQueryBehavior.cjs +0 -146
  31. package/build/legacy/infiniteQueryBehavior.cjs.map +0 -1
  32. package/build/legacy/infiniteQueryBehavior.d.cts +0 -3
  33. package/build/legacy/infiniteQueryBehavior.d.ts +0 -3
  34. package/build/legacy/infiniteQueryBehavior.js +0 -126
  35. package/build/legacy/infiniteQueryBehavior.js.map +0 -1
  36. package/build/legacy/infiniteQueryObserver.cjs +0 -93
  37. package/build/legacy/infiniteQueryObserver.cjs.map +0 -1
  38. package/build/legacy/infiniteQueryObserver.d.cts +0 -1
  39. package/build/legacy/infiniteQueryObserver.d.ts +0 -1
  40. package/build/legacy/infiniteQueryObserver.js +0 -74
  41. package/build/legacy/infiniteQueryObserver.js.map +0 -1
  42. package/build/legacy/mutation.cjs +0 -333
  43. package/build/legacy/mutation.cjs.map +0 -1
  44. package/build/legacy/mutation.d.cts +0 -4
  45. package/build/legacy/mutation.d.ts +0 -4
  46. package/build/legacy/mutation.js +0 -306
  47. package/build/legacy/mutation.js.map +0 -1
  48. package/build/legacy/mutationCache.cjs +0 -170
  49. package/build/legacy/mutationCache.cjs.map +0 -1
  50. package/build/legacy/mutationCache.d.cts +0 -2
  51. package/build/legacy/mutationCache.d.ts +0 -2
  52. package/build/legacy/mutationCache.js +0 -137
  53. package/build/legacy/mutationCache.js.map +0 -1
  54. package/build/legacy/mutationObserver.cjs +0 -190
  55. package/build/legacy/mutationObserver.cjs.map +0 -1
  56. package/build/legacy/mutationObserver.d.cts +0 -1
  57. package/build/legacy/mutationObserver.d.ts +0 -1
  58. package/build/legacy/mutationObserver.js +0 -164
  59. package/build/legacy/mutationObserver.js.map +0 -1
  60. package/build/legacy/notifyManager.cjs +0 -113
  61. package/build/legacy/notifyManager.cjs.map +0 -1
  62. package/build/legacy/notifyManager.d.cts +0 -3
  63. package/build/legacy/notifyManager.d.ts +0 -3
  64. package/build/legacy/notifyManager.js +0 -88
  65. package/build/legacy/notifyManager.js.map +0 -1
  66. package/build/legacy/onlineManager.cjs +0 -96
  67. package/build/legacy/onlineManager.cjs.map +0 -1
  68. package/build/legacy/onlineManager.d.cts +0 -2
  69. package/build/legacy/onlineManager.d.ts +0 -2
  70. package/build/legacy/onlineManager.js +0 -69
  71. package/build/legacy/onlineManager.js.map +0 -1
  72. package/build/legacy/queriesObserver.cjs +0 -260
  73. package/build/legacy/queriesObserver.cjs.map +0 -1
  74. package/build/legacy/queriesObserver.d.cts +0 -2
  75. package/build/legacy/queriesObserver.d.ts +0 -2
  76. package/build/legacy/queriesObserver.js +0 -234
  77. package/build/legacy/queriesObserver.js.map +0 -1
  78. package/build/legacy/query.cjs +0 -487
  79. package/build/legacy/query.cjs.map +0 -1
  80. package/build/legacy/query.d.cts +0 -10
  81. package/build/legacy/query.d.ts +0 -10
  82. package/build/legacy/query.js +0 -468
  83. package/build/legacy/query.js.map +0 -1
  84. package/build/legacy/queryCache.cjs +0 -131
  85. package/build/legacy/queryCache.cjs.map +0 -1
  86. package/build/legacy/queryCache.d.cts +0 -3
  87. package/build/legacy/queryCache.d.ts +0 -3
  88. package/build/legacy/queryCache.js +0 -105
  89. package/build/legacy/queryCache.js.map +0 -1
  90. package/build/legacy/queryClient.cjs +0 -349
  91. package/build/legacy/queryClient.cjs.map +0 -1
  92. package/build/legacy/queryClient.d.cts +0 -1
  93. package/build/legacy/queryClient.d.ts +0 -1
  94. package/build/legacy/queryClient.js +0 -324
  95. package/build/legacy/queryClient.js.map +0 -1
  96. package/build/legacy/queryObserver.cjs +0 -516
  97. package/build/legacy/queryObserver.cjs.map +0 -1
  98. package/build/legacy/queryObserver.d.cts +0 -1
  99. package/build/legacy/queryObserver.d.ts +0 -1
  100. package/build/legacy/queryObserver.js +0 -498
  101. package/build/legacy/queryObserver.js.map +0 -1
  102. package/build/legacy/removable.cjs +0 -70
  103. package/build/legacy/removable.cjs.map +0 -1
  104. package/build/legacy/removable.d.cts +0 -1
  105. package/build/legacy/removable.d.ts +0 -1
  106. package/build/legacy/removable.js +0 -44
  107. package/build/legacy/removable.js.map +0 -1
  108. package/build/legacy/retryer.cjs +0 -166
  109. package/build/legacy/retryer.cjs.map +0 -1
  110. package/build/legacy/retryer.d.cts +0 -7
  111. package/build/legacy/retryer.d.ts +0 -7
  112. package/build/legacy/retryer.js +0 -140
  113. package/build/legacy/retryer.js.map +0 -1
  114. package/build/legacy/streamedQuery.cjs +0 -80
  115. package/build/legacy/streamedQuery.cjs.map +0 -1
  116. package/build/legacy/streamedQuery.d.cts +0 -1
  117. package/build/legacy/streamedQuery.d.ts +0 -1
  118. package/build/legacy/streamedQuery.js +0 -57
  119. package/build/legacy/streamedQuery.js.map +0 -1
  120. package/build/legacy/subscribable.cjs +0 -51
  121. package/build/legacy/subscribable.cjs.map +0 -1
  122. package/build/legacy/subscribable.d.cts +0 -1
  123. package/build/legacy/subscribable.d.ts +0 -1
  124. package/build/legacy/subscribable.js +0 -28
  125. package/build/legacy/subscribable.js.map +0 -1
  126. package/build/legacy/thenable.cjs +0 -76
  127. package/build/legacy/thenable.cjs.map +0 -1
  128. package/build/legacy/thenable.d.cts +0 -6
  129. package/build/legacy/thenable.d.ts +0 -6
  130. package/build/legacy/thenable.js +0 -52
  131. package/build/legacy/thenable.js.map +0 -1
  132. package/build/legacy/timeoutManager.cjs +0 -110
  133. package/build/legacy/timeoutManager.cjs.map +0 -1
  134. package/build/legacy/timeoutManager.d.cts +0 -7
  135. package/build/legacy/timeoutManager.d.ts +0 -7
  136. package/build/legacy/timeoutManager.js +0 -81
  137. package/build/legacy/timeoutManager.js.map +0 -1
  138. package/build/legacy/types.cjs +0 -37
  139. package/build/legacy/types.cjs.map +0 -1
  140. package/build/legacy/types.d.cts +0 -95
  141. package/build/legacy/types.d.ts +0 -95
  142. package/build/legacy/types.js +0 -12
  143. package/build/legacy/types.js.map +0 -1
  144. package/build/legacy/utils.cjs +0 -330
  145. package/build/legacy/utils.cjs.map +0 -1
  146. package/build/legacy/utils.d.cts +0 -30
  147. package/build/legacy/utils.d.ts +0 -30
  148. package/build/legacy/utils.js +0 -283
  149. package/build/legacy/utils.js.map +0 -1
  150. package/build/modern/_tsup-dts-rollup.d.cts +0 -2229
  151. package/build/modern/_tsup-dts-rollup.d.ts +0 -2229
  152. package/build/modern/environmentManager.cjs +0 -48
  153. package/build/modern/environmentManager.cjs.map +0 -1
  154. package/build/modern/environmentManager.d.cts +0 -2
  155. package/build/modern/environmentManager.d.ts +0 -2
  156. package/build/modern/environmentManager.js +0 -23
  157. package/build/modern/environmentManager.js.map +0 -1
  158. package/build/modern/focusManager.cjs +0 -93
  159. package/build/modern/focusManager.cjs.map +0 -1
  160. package/build/modern/focusManager.d.cts +0 -2
  161. package/build/modern/focusManager.d.ts +0 -2
  162. package/build/modern/focusManager.js +0 -67
  163. package/build/modern/focusManager.js.map +0 -1
  164. package/build/modern/hydration.cjs +0 -173
  165. package/build/modern/hydration.cjs.map +0 -1
  166. package/build/modern/hydration.d.cts +0 -7
  167. package/build/modern/hydration.d.ts +0 -7
  168. package/build/modern/hydration.js +0 -145
  169. package/build/modern/hydration.js.map +0 -1
  170. package/build/modern/index.cjs +0 -113
  171. package/build/modern/index.cjs.map +0 -1
  172. package/build/modern/index.d.cts +0 -142
  173. package/build/modern/index.d.ts +0 -142
  174. package/build/modern/index.js +0 -73
  175. package/build/modern/index.js.map +0 -1
  176. package/build/modern/infiniteQueryBehavior.cjs +0 -142
  177. package/build/modern/infiniteQueryBehavior.cjs.map +0 -1
  178. package/build/modern/infiniteQueryBehavior.d.cts +0 -3
  179. package/build/modern/infiniteQueryBehavior.d.ts +0 -3
  180. package/build/modern/infiniteQueryBehavior.js +0 -120
  181. package/build/modern/infiniteQueryBehavior.js.map +0 -1
  182. package/build/modern/infiniteQueryObserver.cjs +0 -92
  183. package/build/modern/infiniteQueryObserver.cjs.map +0 -1
  184. package/build/modern/infiniteQueryObserver.d.cts +0 -1
  185. package/build/modern/infiniteQueryObserver.d.ts +0 -1
  186. package/build/modern/infiniteQueryObserver.js +0 -71
  187. package/build/modern/infiniteQueryObserver.js.map +0 -1
  188. package/build/modern/mutation.cjs +0 -307
  189. package/build/modern/mutation.cjs.map +0 -1
  190. package/build/modern/mutation.d.cts +0 -4
  191. package/build/modern/mutation.d.ts +0 -4
  192. package/build/modern/mutation.js +0 -281
  193. package/build/modern/mutation.js.map +0 -1
  194. package/build/modern/mutationCache.cjs +0 -149
  195. package/build/modern/mutationCache.cjs.map +0 -1
  196. package/build/modern/mutationCache.d.cts +0 -2
  197. package/build/modern/mutationCache.d.ts +0 -2
  198. package/build/modern/mutationCache.js +0 -124
  199. package/build/modern/mutationCache.js.map +0 -1
  200. package/build/modern/mutationObserver.cjs +0 -165
  201. package/build/modern/mutationObserver.cjs.map +0 -1
  202. package/build/modern/mutationObserver.d.cts +0 -1
  203. package/build/modern/mutationObserver.d.ts +0 -1
  204. package/build/modern/mutationObserver.js +0 -140
  205. package/build/modern/mutationObserver.js.map +0 -1
  206. package/build/modern/notifyManager.cjs +0 -113
  207. package/build/modern/notifyManager.cjs.map +0 -1
  208. package/build/modern/notifyManager.d.cts +0 -3
  209. package/build/modern/notifyManager.d.ts +0 -3
  210. package/build/modern/notifyManager.js +0 -86
  211. package/build/modern/notifyManager.js.map +0 -1
  212. package/build/modern/onlineManager.cjs +0 -83
  213. package/build/modern/onlineManager.cjs.map +0 -1
  214. package/build/modern/onlineManager.d.cts +0 -2
  215. package/build/modern/onlineManager.d.ts +0 -2
  216. package/build/modern/onlineManager.js +0 -57
  217. package/build/modern/onlineManager.js.map +0 -1
  218. package/build/modern/queriesObserver.cjs +0 -237
  219. package/build/modern/queriesObserver.cjs.map +0 -1
  220. package/build/modern/queriesObserver.d.cts +0 -2
  221. package/build/modern/queriesObserver.d.ts +0 -2
  222. package/build/modern/queriesObserver.js +0 -212
  223. package/build/modern/queriesObserver.js.map +0 -1
  224. package/build/modern/query.cjs +0 -461
  225. package/build/modern/query.cjs.map +0 -1
  226. package/build/modern/query.d.cts +0 -10
  227. package/build/modern/query.d.ts +0 -10
  228. package/build/modern/query.js +0 -443
  229. package/build/modern/query.js.map +0 -1
  230. package/build/modern/queryCache.cjs +0 -122
  231. package/build/modern/queryCache.cjs.map +0 -1
  232. package/build/modern/queryCache.d.cts +0 -3
  233. package/build/modern/queryCache.d.ts +0 -3
  234. package/build/modern/queryCache.js +0 -97
  235. package/build/modern/queryCache.js.map +0 -1
  236. package/build/modern/queryClient.cjs +0 -322
  237. package/build/modern/queryClient.cjs.map +0 -1
  238. package/build/modern/queryClient.d.cts +0 -1
  239. package/build/modern/queryClient.d.ts +0 -1
  240. package/build/modern/queryClient.js +0 -305
  241. package/build/modern/queryClient.js.map +0 -1
  242. package/build/modern/queryObserver.cjs +0 -489
  243. package/build/modern/queryObserver.cjs.map +0 -1
  244. package/build/modern/queryObserver.d.cts +0 -1
  245. package/build/modern/queryObserver.d.ts +0 -1
  246. package/build/modern/queryObserver.js +0 -472
  247. package/build/modern/queryObserver.js.map +0 -1
  248. package/build/modern/removable.cjs +0 -59
  249. package/build/modern/removable.cjs.map +0 -1
  250. package/build/modern/removable.d.cts +0 -1
  251. package/build/modern/removable.d.ts +0 -1
  252. package/build/modern/removable.js +0 -34
  253. package/build/modern/removable.js.map +0 -1
  254. package/build/modern/retryer.cjs +0 -162
  255. package/build/modern/retryer.cjs.map +0 -1
  256. package/build/modern/retryer.d.cts +0 -7
  257. package/build/modern/retryer.d.ts +0 -7
  258. package/build/modern/retryer.js +0 -134
  259. package/build/modern/retryer.js.map +0 -1
  260. package/build/modern/streamedQuery.cjs +0 -80
  261. package/build/modern/streamedQuery.cjs.map +0 -1
  262. package/build/modern/streamedQuery.d.cts +0 -1
  263. package/build/modern/streamedQuery.d.ts +0 -1
  264. package/build/modern/streamedQuery.js +0 -55
  265. package/build/modern/streamedQuery.js.map +0 -1
  266. package/build/modern/subscribable.cjs +0 -51
  267. package/build/modern/subscribable.cjs.map +0 -1
  268. package/build/modern/subscribable.d.cts +0 -1
  269. package/build/modern/subscribable.d.ts +0 -1
  270. package/build/modern/subscribable.js +0 -26
  271. package/build/modern/subscribable.js.map +0 -1
  272. package/build/modern/thenable.cjs +0 -75
  273. package/build/modern/thenable.cjs.map +0 -1
  274. package/build/modern/thenable.d.cts +0 -6
  275. package/build/modern/thenable.d.ts +0 -6
  276. package/build/modern/thenable.js +0 -49
  277. package/build/modern/thenable.js.map +0 -1
  278. package/build/modern/timeoutManager.cjs +0 -98
  279. package/build/modern/timeoutManager.cjs.map +0 -1
  280. package/build/modern/timeoutManager.d.cts +0 -7
  281. package/build/modern/timeoutManager.d.ts +0 -7
  282. package/build/modern/timeoutManager.js +0 -70
  283. package/build/modern/timeoutManager.js.map +0 -1
  284. package/build/modern/types.cjs +0 -37
  285. package/build/modern/types.cjs.map +0 -1
  286. package/build/modern/types.d.cts +0 -95
  287. package/build/modern/types.d.ts +0 -95
  288. package/build/modern/types.js +0 -10
  289. package/build/modern/types.js.map +0 -1
  290. package/build/modern/utils.cjs +0 -330
  291. package/build/modern/utils.cjs.map +0 -1
  292. package/build/modern/utils.d.cts +0 -30
  293. package/build/modern/utils.d.ts +0 -30
  294. package/build/modern/utils.js +0 -281
  295. 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":[]}