@tanstack/query-core 4.5.0 → 4.6.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/query-core",
3
- "version": "4.5.0",
3
+ "version": "4.6.1",
4
4
  "description": "TODO",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
@@ -113,6 +113,10 @@ export class QueriesObserver extends Subscribable<QueriesObserverListener> {
113
113
  return this.result
114
114
  }
115
115
 
116
+ getQueries() {
117
+ return this.observers.map((observer) => observer.getCurrentQuery())
118
+ }
119
+
116
120
  getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {
117
121
  return this.findMatchingObservers(queries).map((match) =>
118
122
  match.observer.getOptimisticResult(match.defaultedQueryOptions),
package/src/query.ts CHANGED
@@ -452,11 +452,12 @@ export class Query<
452
452
  abort: abortController?.abort.bind(abortController),
453
453
  onSuccess: (data) => {
454
454
  if (typeof data === 'undefined') {
455
- onError(
456
- new Error(
457
- `Query data cannot be undefined - affected query key: ${this.queryHash}`,
458
- ) as any,
459
- )
455
+ if (process.env.NODE_ENV !== 'production') {
456
+ this.logger.error(
457
+ `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,
458
+ )
459
+ }
460
+ onError(new Error('undefined') as any)
460
461
  return
461
462
  }
462
463
 
@@ -816,11 +816,7 @@ describe('query', () => {
816
816
 
817
817
  await sleep(10)
818
818
 
819
- const error = new Error(
820
- `Query data cannot be undefined - affected query key: ${
821
- observer.getCurrentQuery().queryHash
822
- }`,
823
- )
819
+ const error = new Error('undefined')
824
820
 
825
821
  expect(observerResult).toMatchObject({
826
822
  isError: true,
package/src/types.ts CHANGED
@@ -100,6 +100,18 @@ export interface QueryOptions<
100
100
  meta?: QueryMeta
101
101
  }
102
102
 
103
+ export type UseErrorBoundary<
104
+ TQueryFnData,
105
+ TError,
106
+ TQueryData,
107
+ TQueryKey extends QueryKey,
108
+ > =
109
+ | boolean
110
+ | ((
111
+ error: TError,
112
+ query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
113
+ ) => boolean)
114
+
103
115
  export interface QueryObserverOptions<
104
116
  TQueryFnData = unknown,
105
117
  TError = unknown,
@@ -205,12 +217,12 @@ export interface QueryObserverOptions<
205
217
  * If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
206
218
  * Defaults to `false`.
207
219
  */
208
- useErrorBoundary?:
209
- | boolean
210
- | ((
211
- error: TError,
212
- query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
213
- ) => boolean)
220
+ useErrorBoundary?: UseErrorBoundary<
221
+ TQueryFnData,
222
+ TError,
223
+ TQueryData,
224
+ TQueryKey
225
+ >
214
226
  /**
215
227
  * This option can be used to transform or select a part of the data returned by the query function.
216
228
  */