@tanstack/query-core 5.0.0-alpha.59 → 5.0.0-alpha.61

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.
@@ -86,7 +86,7 @@ class QueryObserver extends Subscribable {
86
86
  }
87
87
 
88
88
  // Update result
89
- this.#updateResult(notifyOptions);
89
+ this.updateResult(notifyOptions);
90
90
 
91
91
  // Update stale interval if needed
92
92
  if (mounted && (this.#currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {
@@ -141,7 +141,7 @@ class QueryObserver extends Subscribable {
141
141
  ...fetchOptions,
142
142
  cancelRefetch: fetchOptions.cancelRefetch ?? true
143
143
  }).then(() => {
144
- this.#updateResult();
144
+ this.updateResult();
145
145
  return this.#currentResult;
146
146
  });
147
147
  }
@@ -168,7 +168,7 @@ class QueryObserver extends Subscribable {
168
168
  const timeout = time + 1;
169
169
  this.#staleTimeoutId = setTimeout(() => {
170
170
  if (!this.#currentResult.isStale) {
171
- this.#updateResult();
171
+ this.updateResult();
172
172
  }
173
173
  }, timeout);
174
174
  }
@@ -323,7 +323,7 @@ class QueryObserver extends Subscribable {
323
323
  };
324
324
  return result;
325
325
  }
326
- #updateResult(notifyOptions) {
326
+ updateResult(notifyOptions) {
327
327
  const prevResult = this.#currentResult;
328
328
  const nextResult = this.createResult(this.#currentQuery, this.options);
329
329
  this.#currentResultState = this.#currentQuery.state;
@@ -382,7 +382,7 @@ class QueryObserver extends Subscribable {
382
382
  }
383
383
  }
384
384
  onQueryUpdate() {
385
- this.#updateResult();
385
+ this.updateResult();
386
386
  if (this.hasListeners()) {
387
387
  this.#updateTimers();
388
388
  }
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type {\n DefaultedQueryObserverOptions,\n DefaultError,\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type { Query, QueryState, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","size","addObserver","shouldFetchOnMount","onUnsubscribe","hasListeners","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","#executeFetch","promise","throwOnError","catch","noop","#updateStaleTimeout","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","#computeRefetchInterval","refetchInterval","data","#updateRefetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","#updateTimers","#clearStaleTimeout","clearTimeout","#clearRefetchInterval","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","#updateResult","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","some","typedKey","changed","has","#updateQuery","onQueryUpdate","#notify","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
1
+ {"version":3,"file":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type {\n DefaultedQueryObserverOptions,\n DefaultError,\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type { Query, QueryState, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","size","addObserver","shouldFetchOnMount","onUnsubscribe","hasListeners","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","shouldFetchOptionally","updateResult","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","#executeFetch","promise","throwOnError","catch","noop","#updateStaleTimeout","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","#computeRefetchInterval","refetchInterval","data","#updateRefetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","#updateTimers","#clearStaleTimeout","clearTimeout","#clearRefetchInterval","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","some","typedKey","changed","has","#updateQuery","onQueryUpdate","#notify","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/query-core",
3
- "version": "5.0.0-alpha.59",
3
+ "version": "5.0.0-alpha.61",
4
4
  "description": "The framework agnostic core that powers TanStack Query",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
package/src/mutation.ts CHANGED
@@ -119,7 +119,7 @@ export class Mutation<
119
119
  }
120
120
 
121
121
  addObserver(observer: MutationObserver<any, any, any, any>): void {
122
- if (this.#observers.indexOf(observer) === -1) {
122
+ if (!this.#observers.includes(observer)) {
123
123
  this.#observers.push(observer)
124
124
 
125
125
  // Stop the mutation from being garbage collected
@@ -5,6 +5,8 @@ type SetupFn = (
5
5
  setOnline: (online?: boolean) => void,
6
6
  ) => (() => void) | undefined
7
7
 
8
+ const onlineEvents = ['online', 'offline'] as const
9
+
8
10
  export class OnlineManager extends Subscribable {
9
11
  #online?: boolean
10
12
  #cleanup?: () => void
@@ -19,13 +21,15 @@ export class OnlineManager extends Subscribable {
19
21
  if (!isServer && window.addEventListener) {
20
22
  const listener = () => onOnline()
21
23
  // Listen to online
22
- window.addEventListener('online', listener, false)
23
- window.addEventListener('offline', listener, false)
24
+ onlineEvents.forEach((event) => {
25
+ window.addEventListener(event, listener, false)
26
+ })
24
27
 
25
28
  return () => {
26
29
  // Be sure to unsubscribe if a new handler is set
27
- window.removeEventListener('online', listener)
28
- window.removeEventListener('offline', listener)
30
+ onlineEvents.forEach((event) => {
31
+ window.removeEventListener(event, listener)
32
+ })
29
33
  }
30
34
  }
31
35
 
@@ -11,7 +11,7 @@ import { Subscribable } from './subscribable'
11
11
  import { replaceEqualDeep } from './utils'
12
12
 
13
13
  function difference<T>(array1: T[], array2: T[]): T[] {
14
- return array1.filter((x) => array2.indexOf(x) === -1)
14
+ return array1.filter((x) => !array2.includes(x))
15
15
  }
16
16
 
17
17
  function replaceAt<T>(array: T[], index: number, value: T): T[] {
package/src/query.ts CHANGED
@@ -281,7 +281,7 @@ export class Query<
281
281
  }
282
282
 
283
283
  addObserver(observer: QueryObserver<any, any, any, any, any>): void {
284
- if (this.#observers.indexOf(observer) === -1) {
284
+ if (!this.#observers.includes(observer)) {
285
285
  this.#observers.push(observer)
286
286
 
287
287
  // Stop the query from being garbage collected
@@ -292,7 +292,7 @@ export class Query<
292
292
  }
293
293
 
294
294
  removeObserver(observer: QueryObserver<any, any, any, any, any>): void {
295
- if (this.#observers.indexOf(observer) !== -1) {
295
+ if (this.#observers.includes(observer)) {
296
296
  this.#observers = this.#observers.filter((x) => x !== observer)
297
297
 
298
298
  if (!this.#observers.length) {
@@ -191,7 +191,7 @@ export class QueryObserver<
191
191
  }
192
192
 
193
193
  // Update result
194
- this.#updateResult(notifyOptions)
194
+ this.updateResult(notifyOptions)
195
195
 
196
196
  // Update stale interval if needed
197
197
  if (
@@ -291,7 +291,7 @@ export class QueryObserver<
291
291
  ...fetchOptions,
292
292
  cancelRefetch: fetchOptions.cancelRefetch ?? true,
293
293
  }).then(() => {
294
- this.#updateResult()
294
+ this.updateResult()
295
295
  return this.#currentResult
296
296
  })
297
297
  }
@@ -337,7 +337,7 @@ export class QueryObserver<
337
337
 
338
338
  this.#staleTimeoutId = setTimeout(() => {
339
339
  if (!this.#currentResult.isStale) {
340
- this.#updateResult()
340
+ this.updateResult()
341
341
  }
342
342
  }, timeout)
343
343
  }
@@ -561,7 +561,7 @@ export class QueryObserver<
561
561
  return result as QueryObserverResult<TData, TError>
562
562
  }
563
563
 
564
- #updateResult(notifyOptions?: NotifyOptions): void {
564
+ updateResult(notifyOptions?: NotifyOptions): void {
565
565
  const prevResult = this.#currentResult as
566
566
  | QueryObserverResult<TData, TError>
567
567
  | undefined
@@ -637,7 +637,7 @@ export class QueryObserver<
637
637
  }
638
638
 
639
639
  onQueryUpdate(): void {
640
- this.#updateResult()
640
+ this.updateResult()
641
641
 
642
642
  if (this.hasListeners()) {
643
643
  this.#updateTimers()