@tanstack/query-core 4.29.1 → 4.29.7

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 (146) hide show
  1. package/build/lib/focusManager.d.ts +1 -0
  2. package/build/lib/focusManager.d.ts.map +1 -0
  3. package/build/lib/focusManager.esm.js +3 -1
  4. package/build/lib/focusManager.esm.js.map +1 -1
  5. package/build/lib/focusManager.js +3 -1
  6. package/build/lib/focusManager.js.map +1 -1
  7. package/build/lib/focusManager.mjs +3 -1
  8. package/build/lib/focusManager.mjs.map +1 -1
  9. package/build/lib/hydration.d.ts +1 -0
  10. package/build/lib/hydration.d.ts.map +1 -0
  11. package/build/lib/index.d.ts +1 -0
  12. package/build/lib/index.d.ts.map +1 -0
  13. package/build/lib/infiniteQueryBehavior.d.ts +1 -0
  14. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  15. package/build/lib/infiniteQueryObserver.d.ts +1 -0
  16. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  17. package/build/lib/logger.d.ts +1 -0
  18. package/build/lib/logger.d.ts.map +1 -0
  19. package/build/lib/logger.native.d.ts +1 -0
  20. package/build/lib/logger.native.d.ts.map +1 -0
  21. package/build/lib/mutation.d.ts +1 -0
  22. package/build/lib/mutation.d.ts.map +1 -0
  23. package/build/lib/mutationCache.d.ts +1 -0
  24. package/build/lib/mutationCache.d.ts.map +1 -0
  25. package/build/lib/mutationCache.esm.js +3 -1
  26. package/build/lib/mutationCache.esm.js.map +1 -1
  27. package/build/lib/mutationCache.js +3 -1
  28. package/build/lib/mutationCache.js.map +1 -1
  29. package/build/lib/mutationCache.mjs +3 -1
  30. package/build/lib/mutationCache.mjs.map +1 -1
  31. package/build/lib/mutationObserver.d.ts +1 -0
  32. package/build/lib/mutationObserver.d.ts.map +1 -0
  33. package/build/lib/mutationObserver.esm.js +4 -2
  34. package/build/lib/mutationObserver.esm.js.map +1 -1
  35. package/build/lib/mutationObserver.js +4 -2
  36. package/build/lib/mutationObserver.js.map +1 -1
  37. package/build/lib/mutationObserver.mjs +4 -2
  38. package/build/lib/mutationObserver.mjs.map +1 -1
  39. package/build/lib/notifyManager.d.ts +1 -0
  40. package/build/lib/notifyManager.d.ts.map +1 -0
  41. package/build/lib/onlineManager.d.ts +1 -0
  42. package/build/lib/onlineManager.d.ts.map +1 -0
  43. package/build/lib/onlineManager.esm.js +3 -1
  44. package/build/lib/onlineManager.esm.js.map +1 -1
  45. package/build/lib/onlineManager.js +3 -1
  46. package/build/lib/onlineManager.js.map +1 -1
  47. package/build/lib/onlineManager.mjs +3 -1
  48. package/build/lib/onlineManager.mjs.map +1 -1
  49. package/build/lib/queriesObserver.d.ts +1 -0
  50. package/build/lib/queriesObserver.d.ts.map +1 -0
  51. package/build/lib/queriesObserver.esm.js +6 -4
  52. package/build/lib/queriesObserver.esm.js.map +1 -1
  53. package/build/lib/queriesObserver.js +6 -4
  54. package/build/lib/queriesObserver.js.map +1 -1
  55. package/build/lib/queriesObserver.mjs +6 -4
  56. package/build/lib/queriesObserver.mjs.map +1 -1
  57. package/build/lib/query.d.ts +1 -0
  58. package/build/lib/query.d.ts.map +1 -0
  59. package/build/lib/query.esm.js +1 -1
  60. package/build/lib/query.esm.js.map +1 -1
  61. package/build/lib/query.js +1 -1
  62. package/build/lib/query.js.map +1 -1
  63. package/build/lib/query.mjs +1 -1
  64. package/build/lib/query.mjs.map +1 -1
  65. package/build/lib/queryCache.d.ts +1 -0
  66. package/build/lib/queryCache.d.ts.map +1 -0
  67. package/build/lib/queryCache.esm.js +3 -1
  68. package/build/lib/queryCache.esm.js.map +1 -1
  69. package/build/lib/queryCache.js +3 -1
  70. package/build/lib/queryCache.js.map +1 -1
  71. package/build/lib/queryCache.mjs +3 -1
  72. package/build/lib/queryCache.mjs.map +1 -1
  73. package/build/lib/queryClient.d.ts +1 -0
  74. package/build/lib/queryClient.d.ts.map +1 -0
  75. package/build/lib/queryObserver.d.ts +1 -0
  76. package/build/lib/queryObserver.d.ts.map +1 -0
  77. package/build/lib/queryObserver.esm.js +6 -4
  78. package/build/lib/queryObserver.esm.js.map +1 -1
  79. package/build/lib/queryObserver.js +6 -4
  80. package/build/lib/queryObserver.js.map +1 -1
  81. package/build/lib/queryObserver.mjs +6 -4
  82. package/build/lib/queryObserver.mjs.map +1 -1
  83. package/build/lib/removable.d.ts +1 -0
  84. package/build/lib/removable.d.ts.map +1 -0
  85. package/build/lib/retryer.d.ts +1 -0
  86. package/build/lib/retryer.d.ts.map +1 -0
  87. package/build/lib/subscribable.d.ts +4 -1
  88. package/build/lib/subscribable.d.ts.map +1 -0
  89. package/build/lib/subscribable.esm.js +7 -4
  90. package/build/lib/subscribable.esm.js.map +1 -1
  91. package/build/lib/subscribable.js +7 -4
  92. package/build/lib/subscribable.js.map +1 -1
  93. package/build/lib/subscribable.mjs +7 -4
  94. package/build/lib/subscribable.mjs.map +1 -1
  95. package/build/lib/tests/focusManager.test.d.ts +1 -0
  96. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  97. package/build/lib/tests/hydration.test.d.ts +1 -0
  98. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  99. package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
  100. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  101. package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
  102. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  103. package/build/lib/tests/mutationCache.test.d.ts +1 -0
  104. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  105. package/build/lib/tests/mutationObserver.test.d.ts +1 -0
  106. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  107. package/build/lib/tests/mutations.test.d.ts +1 -0
  108. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  109. package/build/lib/tests/notifyManager.test.d.ts +1 -0
  110. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  111. package/build/lib/tests/onlineManager.test.d.ts +1 -0
  112. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  113. package/build/lib/tests/queriesObserver.test.d.ts +1 -0
  114. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  115. package/build/lib/tests/query.test.d.ts +1 -0
  116. package/build/lib/tests/query.test.d.ts.map +1 -0
  117. package/build/lib/tests/queryCache.test.d.ts +1 -0
  118. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  119. package/build/lib/tests/queryClient.test.d.ts +1 -0
  120. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  121. package/build/lib/tests/queryObserver.test.d.ts +1 -0
  122. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  123. package/build/lib/tests/utils.d.ts +1 -0
  124. package/build/lib/tests/utils.d.ts.map +1 -0
  125. package/build/lib/tests/utils.test.d.ts +1 -0
  126. package/build/lib/tests/utils.test.d.ts.map +1 -0
  127. package/build/lib/types.d.ts +7 -0
  128. package/build/lib/types.d.ts.map +1 -0
  129. package/build/lib/utils.d.ts +1 -0
  130. package/build/lib/utils.d.ts.map +1 -0
  131. package/build/umd/index.development.js +36 -19
  132. package/build/umd/index.development.js.map +1 -1
  133. package/build/umd/index.production.js +1 -1
  134. package/build/umd/index.production.js.map +1 -1
  135. package/package.json +1 -1
  136. package/src/focusManager.ts +1 -1
  137. package/src/mutationCache.ts +1 -1
  138. package/src/mutationObserver.ts +2 -2
  139. package/src/onlineManager.ts +1 -1
  140. package/src/queriesObserver.ts +4 -4
  141. package/src/query.ts +1 -1
  142. package/src/queryCache.ts +1 -1
  143. package/src/queryObserver.ts +4 -4
  144. package/src/subscribable.ts +6 -5
  145. package/src/tests/query.test.tsx +1 -1
  146. package/src/types.ts +6 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/query-core",
3
- "version": "4.29.1",
3
+ "version": "4.29.7",
4
4
  "description": "The framework agnostic core that powers TanStack Query",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
@@ -66,7 +66,7 @@ export class FocusManager extends Subscribable {
66
66
  }
67
67
 
68
68
  onFocus(): void {
69
- this.listeners.forEach((listener) => {
69
+ this.listeners.forEach(({ listener }) => {
70
70
  listener()
71
71
  })
72
72
  }
@@ -154,7 +154,7 @@ export class MutationCache extends Subscribable<MutationCacheListener> {
154
154
 
155
155
  notify(event: MutationCacheNotifyEvent) {
156
156
  notifyManager.batch(() => {
157
- this.listeners.forEach((listener) => {
157
+ this.listeners.forEach(({ listener }) => {
158
158
  listener(event)
159
159
  })
160
160
  })
@@ -78,7 +78,7 @@ export class MutationObserver<
78
78
  }
79
79
 
80
80
  protected onUnsubscribe(): void {
81
- if (!this.listeners.length) {
81
+ if (!this.hasListeners()) {
82
82
  this.currentMutation?.removeObserver(this)
83
83
  }
84
84
  }
@@ -197,7 +197,7 @@ export class MutationObserver<
197
197
 
198
198
  // Then trigger the listeners
199
199
  if (options.listeners) {
200
- this.listeners.forEach((listener) => {
200
+ this.listeners.forEach(({ listener }) => {
201
201
  listener(this.currentResult)
202
202
  })
203
203
  }
@@ -67,7 +67,7 @@ export class OnlineManager extends Subscribable {
67
67
  }
68
68
 
69
69
  onOnline(): void {
70
- this.listeners.forEach((listener) => {
70
+ this.listeners.forEach(({ listener }) => {
71
71
  listener()
72
72
  })
73
73
  }
@@ -34,7 +34,7 @@ export class QueriesObserver extends Subscribable<QueriesObserverListener> {
34
34
  }
35
35
 
36
36
  protected onSubscribe(): void {
37
- if (this.listeners.length === 1) {
37
+ if (this.listeners.size === 1) {
38
38
  this.observers.forEach((observer) => {
39
39
  observer.subscribe((result) => {
40
40
  this.onUpdate(observer, result)
@@ -44,13 +44,13 @@ export class QueriesObserver extends Subscribable<QueriesObserverListener> {
44
44
  }
45
45
 
46
46
  protected onUnsubscribe(): void {
47
- if (!this.listeners.length) {
47
+ if (!this.listeners.size) {
48
48
  this.destroy()
49
49
  }
50
50
  }
51
51
 
52
52
  destroy(): void {
53
- this.listeners = []
53
+ this.listeners = new Set()
54
54
  this.observers.forEach((observer) => {
55
55
  observer.destroy()
56
56
  })
@@ -209,7 +209,7 @@ export class QueriesObserver extends Subscribable<QueriesObserverListener> {
209
209
 
210
210
  private notify(): void {
211
211
  notifyManager.batch(() => {
212
- this.listeners.forEach((listener) => {
212
+ this.listeners.forEach(({ listener }) => {
213
213
  listener(this.result)
214
214
  })
215
215
  })
package/src/query.ts CHANGED
@@ -463,7 +463,7 @@ export class Query<
463
463
  `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,
464
464
  )
465
465
  }
466
- onError(new Error('undefined') as any)
466
+ onError(new Error(`${this.queryHash} data is undefined`) as any)
467
467
  return
468
468
  }
469
469
 
package/src/queryCache.ts CHANGED
@@ -190,7 +190,7 @@ export class QueryCache extends Subscribable<QueryCacheListener> {
190
190
 
191
191
  notify(event: QueryCacheNotifyEvent) {
192
192
  notifyManager.batch(() => {
193
- this.listeners.forEach((listener) => {
193
+ this.listeners.forEach(({ listener }) => {
194
194
  listener(event)
195
195
  })
196
196
  })
@@ -100,7 +100,7 @@ export class QueryObserver<
100
100
  }
101
101
 
102
102
  protected onSubscribe(): void {
103
- if (this.listeners.length === 1) {
103
+ if (this.listeners.size === 1) {
104
104
  this.currentQuery.addObserver(this)
105
105
 
106
106
  if (shouldFetchOnMount(this.currentQuery, this.options)) {
@@ -112,7 +112,7 @@ export class QueryObserver<
112
112
  }
113
113
 
114
114
  protected onUnsubscribe(): void {
115
- if (!this.listeners.length) {
115
+ if (!this.hasListeners()) {
116
116
  this.destroy()
117
117
  }
118
118
  }
@@ -134,7 +134,7 @@ export class QueryObserver<
134
134
  }
135
135
 
136
136
  destroy(): void {
137
- this.listeners = []
137
+ this.listeners = new Set()
138
138
  this.clearStaleTimeout()
139
139
  this.clearRefetchInterval()
140
140
  this.currentQuery.removeObserver(this)
@@ -691,7 +691,7 @@ export class QueryObserver<
691
691
 
692
692
  // Then trigger the listeners
693
693
  if (notifyOptions.listeners) {
694
- this.listeners.forEach((listener) => {
694
+ this.listeners.forEach(({ listener }) => {
695
695
  listener(this.currentResult)
696
696
  })
697
697
  }
@@ -1,26 +1,27 @@
1
1
  type Listener = () => void
2
2
 
3
3
  export class Subscribable<TListener extends Function = Listener> {
4
- protected listeners: TListener[]
4
+ protected listeners: Set<{ listener: TListener }>
5
5
 
6
6
  constructor() {
7
- this.listeners = []
7
+ this.listeners = new Set()
8
8
  this.subscribe = this.subscribe.bind(this)
9
9
  }
10
10
 
11
11
  subscribe(listener: TListener): () => void {
12
- this.listeners.push(listener as TListener)
12
+ const identity = { listener }
13
+ this.listeners.add(identity)
13
14
 
14
15
  this.onSubscribe()
15
16
 
16
17
  return () => {
17
- this.listeners = this.listeners.filter((x) => x !== listener)
18
+ this.listeners.delete(identity)
18
19
  this.onUnsubscribe()
19
20
  }
20
21
  }
21
22
 
22
23
  hasListeners(): boolean {
23
- return this.listeners.length > 0
24
+ return this.listeners.size > 0
24
25
  }
25
26
 
26
27
  protected onSubscribe(): void {
@@ -817,7 +817,7 @@ describe('query', () => {
817
817
 
818
818
  await sleep(10)
819
819
 
820
- const error = new Error('undefined')
820
+ const error = new Error(`${JSON.stringify(key)} data is undefined`)
821
821
 
822
822
  expect(observerResult).toMatchObject({
823
823
  isError: true,
package/src/types.ts CHANGED
@@ -204,14 +204,20 @@ export interface QueryObserverOptions<
204
204
  notifyOnChangeProps?: Array<keyof InfiniteQueryObserverResult> | 'all'
205
205
  /**
206
206
  * This callback will fire any time the query successfully fetches new data.
207
+ *
208
+ * @deprecated This callback will be removed in the next major version.
207
209
  */
208
210
  onSuccess?: (data: TData) => void
209
211
  /**
210
212
  * This callback will fire if the query encounters an error and will be passed the error.
213
+ *
214
+ * @deprecated This callback will be removed in the next major version.
211
215
  */
212
216
  onError?: (err: TError) => void
213
217
  /**
214
218
  * This callback will fire any time the query is either successfully fetched or errors and be passed either the data or error.
219
+ *
220
+ * @deprecated This callback will be removed in the next major version.
215
221
  */
216
222
  onSettled?: (data: TData | undefined, error: TError | null) => void
217
223
  /**