@tanstack/query-core 4.7.1 → 4.8.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Tanner Linsley
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -339,12 +339,15 @@ class QueryObserver extends Subscribable {
339
339
  }
340
340
 
341
341
  const isFetching = fetchStatus === 'fetching';
342
+ const isLoading = status === 'loading';
343
+ const isError = status === 'error';
342
344
  const result = {
343
345
  status,
344
346
  fetchStatus,
345
- isLoading: status === 'loading',
347
+ isLoading,
346
348
  isSuccess: status === 'success',
347
- isError: status === 'error',
349
+ isError,
350
+ isInitialLoading: isLoading && isFetching,
348
351
  data,
349
352
  dataUpdatedAt,
350
353
  error,
@@ -353,13 +356,13 @@ class QueryObserver extends Subscribable {
353
356
  errorUpdateCount: state.errorUpdateCount,
354
357
  isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,
355
358
  isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,
356
- isFetching: isFetching,
357
- isRefetching: isFetching && status !== 'loading',
358
- isLoadingError: status === 'error' && state.dataUpdatedAt === 0,
359
+ isFetching,
360
+ isRefetching: isFetching && !isLoading,
361
+ isLoadingError: isError && state.dataUpdatedAt === 0,
359
362
  isPaused: fetchStatus === 'paused',
360
363
  isPlaceholderData,
361
364
  isPreviousData,
362
- isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,
365
+ isRefetchError: isError && state.dataUpdatedAt !== 0,
363
366
  isStale: isStale(query, options),
364
367
  refetch: this.refetch,
365
368
  remove: this.remove
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.esm.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, RefetchPageFilters } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n cache?: boolean\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\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 private client: QueryClient\n private currentQuery!: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n private currentQueryInitialState!: QueryState<TQueryData, TError>\n private currentResult!: QueryObserverResult<TData, TError>\n private currentResultState?: QueryState<TQueryData, TError>\n private currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n private previousQueryResult?: QueryObserverResult<TData, TError>\n private selectError: TError | null\n private selectFn?: (data: TQueryData) => TData\n private selectResult?: TData\n private staleTimeoutId?: ReturnType<typeof setTimeout>\n private refetchIntervalId?: ReturnType<typeof setInterval>\n private currentRefetchInterval?: number | false\n private trackedProps!: Set<keyof QueryObserverResult>\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.trackedProps = new Set()\n this.selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.remove = this.remove.bind(this)\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 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.listeners.length) {\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 = []\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 remove(): void {\n this.client.getQueryCache().remove(this.currentQuery)\n }\n\n refetch<TPageData>({\n refetchPage,\n ...options\n }: RefetchOptions & RefetchPageFilters<TPageData> = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: { refetchPage },\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 private 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 private 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 private computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.currentResult.data, this.currentQuery)\n : this.options.refetchInterval ?? false\n }\n\n private 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 private updateTimers(): void {\n this.updateStaleTimeout()\n this.updateRefetchInterval(this.computeRefetchInterval())\n }\n\n private clearStaleTimeout(): void {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId)\n this.staleTimeoutId = undefined\n }\n }\n\n private 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 const prevQueryResult = queryChange\n ? this.currentResult\n : this.previousQueryResult\n\n const { state } = query\n let { dataUpdatedAt, error, errorUpdatedAt, fetchStatus, status } = state\n let isPreviousData = false\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 (!dataUpdatedAt) {\n status = 'loading'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Keep previous data if needed\n if (\n options.keepPreviousData &&\n !state.dataUpdateCount &&\n prevQueryResult?.isSuccess &&\n status !== 'error'\n ) {\n data = prevQueryResult.data\n dataUpdatedAt = prevQueryResult.dataUpdatedAt\n status = prevQueryResult.status\n isPreviousData = true\n }\n // Select data if needed\n else 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 if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\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 === 'loading'\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 ? (options.placeholderData as PlaceholderDataFunction<TQueryData>)()\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n placeholderData = replaceData(\n prevResult?.data,\n placeholderData,\n options,\n )\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = placeholderData 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\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\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: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove,\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 this.currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = { cache: true }\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.useErrorBoundary) {\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 private 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 this.previousQueryResult = this.currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.updateTimers()\n }\n }\n\n private notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.currentResult.data!)\n this.options.onSettled?.(this.currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.currentResult.error!)\n this.options.onSettled?.(undefined, this.currentResult.error!)\n }\n\n // Then 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 if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated',\n })\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","constructor","client","options","trackedProps","Set","selectError","bindMethods","setOptions","remove","bind","refetch","onSubscribe","listeners","length","currentQuery","addObserver","shouldFetchOnMount","executeFetch","updateTimers","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","updateQuery","mounted","hasListeners","shouldFetchOptionally","updateResult","staleTime","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","currentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","refetchPage","fetch","meta","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","staleTimeoutId","setTimeout","refetchInterval","data","nextInterval","refetchIntervalId","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","undefined","clearInterval","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","state","currentQueryInitialState","prevQueryResult","previousQueryResult","error","errorUpdatedAt","fetchStatus","status","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","keepPreviousData","dataUpdateCount","isSuccess","select","selectFn","selectResult","replaceData","process","env","NODE_ENV","getLogger","placeholderData","Date","now","isFetching","isLoading","isError","failureCount","fetchFailureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","cache","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","useErrorBoundary","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
1
+ {"version":3,"file":"queryObserver.esm.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, RefetchPageFilters } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n cache?: boolean\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\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 private client: QueryClient\n private currentQuery!: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n private currentQueryInitialState!: QueryState<TQueryData, TError>\n private currentResult!: QueryObserverResult<TData, TError>\n private currentResultState?: QueryState<TQueryData, TError>\n private currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n private previousQueryResult?: QueryObserverResult<TData, TError>\n private selectError: TError | null\n private selectFn?: (data: TQueryData) => TData\n private selectResult?: TData\n private staleTimeoutId?: ReturnType<typeof setTimeout>\n private refetchIntervalId?: ReturnType<typeof setInterval>\n private currentRefetchInterval?: number | false\n private trackedProps!: Set<keyof QueryObserverResult>\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.trackedProps = new Set()\n this.selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.remove = this.remove.bind(this)\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 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.listeners.length) {\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 = []\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 remove(): void {\n this.client.getQueryCache().remove(this.currentQuery)\n }\n\n refetch<TPageData>({\n refetchPage,\n ...options\n }: RefetchOptions & RefetchPageFilters<TPageData> = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: { refetchPage },\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 private 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 private 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 private computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.currentResult.data, this.currentQuery)\n : this.options.refetchInterval ?? false\n }\n\n private 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 private updateTimers(): void {\n this.updateStaleTimeout()\n this.updateRefetchInterval(this.computeRefetchInterval())\n }\n\n private clearStaleTimeout(): void {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId)\n this.staleTimeoutId = undefined\n }\n }\n\n private 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 const prevQueryResult = queryChange\n ? this.currentResult\n : this.previousQueryResult\n\n const { state } = query\n let { dataUpdatedAt, error, errorUpdatedAt, fetchStatus, status } = state\n let isPreviousData = false\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 (!dataUpdatedAt) {\n status = 'loading'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Keep previous data if needed\n if (\n options.keepPreviousData &&\n !state.dataUpdateCount &&\n prevQueryResult?.isSuccess &&\n status !== 'error'\n ) {\n data = prevQueryResult.data\n dataUpdatedAt = prevQueryResult.dataUpdatedAt\n status = prevQueryResult.status\n isPreviousData = true\n }\n // Select data if needed\n else 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 if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\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 === 'loading'\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 ? (options.placeholderData as PlaceholderDataFunction<TQueryData>)()\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n placeholderData = replaceData(\n prevResult?.data,\n placeholderData,\n options,\n )\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = placeholderData 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 isLoading = status === 'loading'\n const isError = status === 'error'\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\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 && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove,\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 this.currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = { cache: true }\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.useErrorBoundary) {\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 private 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 this.previousQueryResult = this.currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.updateTimers()\n }\n }\n\n private notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.currentResult.data!)\n this.options.onSettled?.(this.currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.currentResult.error!)\n this.options.onSettled?.(undefined, this.currentResult.error!)\n }\n\n // Then 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 if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated',\n })\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","constructor","client","options","trackedProps","Set","selectError","bindMethods","setOptions","remove","bind","refetch","onSubscribe","listeners","length","currentQuery","addObserver","shouldFetchOnMount","executeFetch","updateTimers","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","updateQuery","mounted","hasListeners","shouldFetchOptionally","updateResult","staleTime","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","currentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","refetchPage","fetch","meta","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","staleTimeoutId","setTimeout","refetchInterval","data","nextInterval","refetchIntervalId","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","undefined","clearInterval","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","state","currentQueryInitialState","prevQueryResult","previousQueryResult","error","errorUpdatedAt","fetchStatus","status","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","keepPreviousData","dataUpdateCount","isSuccess","select","selectFn","selectResult","replaceData","process","env","NODE_ENV","getLogger","placeholderData","Date","now","isFetching","isLoading","isError","isInitialLoading","failureCount","fetchFailureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","cache","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","useErrorBoundary","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
@@ -343,12 +343,15 @@ class QueryObserver extends subscribable.Subscribable {
343
343
  }
344
344
 
345
345
  const isFetching = fetchStatus === 'fetching';
346
+ const isLoading = status === 'loading';
347
+ const isError = status === 'error';
346
348
  const result = {
347
349
  status,
348
350
  fetchStatus,
349
- isLoading: status === 'loading',
351
+ isLoading,
350
352
  isSuccess: status === 'success',
351
- isError: status === 'error',
353
+ isError,
354
+ isInitialLoading: isLoading && isFetching,
352
355
  data,
353
356
  dataUpdatedAt,
354
357
  error,
@@ -357,13 +360,13 @@ class QueryObserver extends subscribable.Subscribable {
357
360
  errorUpdateCount: state.errorUpdateCount,
358
361
  isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,
359
362
  isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,
360
- isFetching: isFetching,
361
- isRefetching: isFetching && status !== 'loading',
362
- isLoadingError: status === 'error' && state.dataUpdatedAt === 0,
363
+ isFetching,
364
+ isRefetching: isFetching && !isLoading,
365
+ isLoadingError: isError && state.dataUpdatedAt === 0,
363
366
  isPaused: fetchStatus === 'paused',
364
367
  isPlaceholderData,
365
368
  isPreviousData,
366
- isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,
369
+ isRefetchError: isError && state.dataUpdatedAt !== 0,
367
370
  isStale: isStale(query, options),
368
371
  refetch: this.refetch,
369
372
  remove: this.remove
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, RefetchPageFilters } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n cache?: boolean\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\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 private client: QueryClient\n private currentQuery!: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n private currentQueryInitialState!: QueryState<TQueryData, TError>\n private currentResult!: QueryObserverResult<TData, TError>\n private currentResultState?: QueryState<TQueryData, TError>\n private currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n private previousQueryResult?: QueryObserverResult<TData, TError>\n private selectError: TError | null\n private selectFn?: (data: TQueryData) => TData\n private selectResult?: TData\n private staleTimeoutId?: ReturnType<typeof setTimeout>\n private refetchIntervalId?: ReturnType<typeof setInterval>\n private currentRefetchInterval?: number | false\n private trackedProps!: Set<keyof QueryObserverResult>\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.trackedProps = new Set()\n this.selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.remove = this.remove.bind(this)\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 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.listeners.length) {\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 = []\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 remove(): void {\n this.client.getQueryCache().remove(this.currentQuery)\n }\n\n refetch<TPageData>({\n refetchPage,\n ...options\n }: RefetchOptions & RefetchPageFilters<TPageData> = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: { refetchPage },\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 private 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 private 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 private computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.currentResult.data, this.currentQuery)\n : this.options.refetchInterval ?? false\n }\n\n private 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 private updateTimers(): void {\n this.updateStaleTimeout()\n this.updateRefetchInterval(this.computeRefetchInterval())\n }\n\n private clearStaleTimeout(): void {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId)\n this.staleTimeoutId = undefined\n }\n }\n\n private 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 const prevQueryResult = queryChange\n ? this.currentResult\n : this.previousQueryResult\n\n const { state } = query\n let { dataUpdatedAt, error, errorUpdatedAt, fetchStatus, status } = state\n let isPreviousData = false\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 (!dataUpdatedAt) {\n status = 'loading'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Keep previous data if needed\n if (\n options.keepPreviousData &&\n !state.dataUpdateCount &&\n prevQueryResult?.isSuccess &&\n status !== 'error'\n ) {\n data = prevQueryResult.data\n dataUpdatedAt = prevQueryResult.dataUpdatedAt\n status = prevQueryResult.status\n isPreviousData = true\n }\n // Select data if needed\n else 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 if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\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 === 'loading'\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 ? (options.placeholderData as PlaceholderDataFunction<TQueryData>)()\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n placeholderData = replaceData(\n prevResult?.data,\n placeholderData,\n options,\n )\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = placeholderData 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\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\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: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove,\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 this.currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = { cache: true }\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.useErrorBoundary) {\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 private 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 this.previousQueryResult = this.currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.updateTimers()\n }\n }\n\n private notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.currentResult.data!)\n this.options.onSettled?.(this.currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.currentResult.error!)\n this.options.onSettled?.(undefined, this.currentResult.error!)\n }\n\n // Then 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 if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated',\n })\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","constructor","client","options","trackedProps","Set","selectError","bindMethods","setOptions","remove","bind","refetch","onSubscribe","listeners","length","currentQuery","addObserver","shouldFetchOnMount","executeFetch","updateTimers","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","updateQuery","mounted","hasListeners","shouldFetchOptionally","updateResult","staleTime","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","currentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","refetchPage","fetch","meta","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","staleTimeoutId","setTimeout","refetchInterval","data","nextInterval","refetchIntervalId","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","undefined","clearInterval","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","state","currentQueryInitialState","prevQueryResult","previousQueryResult","error","errorUpdatedAt","fetchStatus","status","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","keepPreviousData","dataUpdateCount","isSuccess","select","selectFn","selectResult","replaceData","process","env","NODE_ENV","getLogger","placeholderData","Date","now","isFetching","isLoading","isError","failureCount","fetchFailureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","cache","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","useErrorBoundary","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","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 { DefaultedQueryObserverOptions, RefetchPageFilters } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n cache?: boolean\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\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 private client: QueryClient\n private currentQuery!: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n private currentQueryInitialState!: QueryState<TQueryData, TError>\n private currentResult!: QueryObserverResult<TData, TError>\n private currentResultState?: QueryState<TQueryData, TError>\n private currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n private previousQueryResult?: QueryObserverResult<TData, TError>\n private selectError: TError | null\n private selectFn?: (data: TQueryData) => TData\n private selectResult?: TData\n private staleTimeoutId?: ReturnType<typeof setTimeout>\n private refetchIntervalId?: ReturnType<typeof setInterval>\n private currentRefetchInterval?: number | false\n private trackedProps!: Set<keyof QueryObserverResult>\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.trackedProps = new Set()\n this.selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.remove = this.remove.bind(this)\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 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.listeners.length) {\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 = []\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 remove(): void {\n this.client.getQueryCache().remove(this.currentQuery)\n }\n\n refetch<TPageData>({\n refetchPage,\n ...options\n }: RefetchOptions & RefetchPageFilters<TPageData> = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: { refetchPage },\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 private 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 private 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 private computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.currentResult.data, this.currentQuery)\n : this.options.refetchInterval ?? false\n }\n\n private 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 private updateTimers(): void {\n this.updateStaleTimeout()\n this.updateRefetchInterval(this.computeRefetchInterval())\n }\n\n private clearStaleTimeout(): void {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId)\n this.staleTimeoutId = undefined\n }\n }\n\n private 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 const prevQueryResult = queryChange\n ? this.currentResult\n : this.previousQueryResult\n\n const { state } = query\n let { dataUpdatedAt, error, errorUpdatedAt, fetchStatus, status } = state\n let isPreviousData = false\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 (!dataUpdatedAt) {\n status = 'loading'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Keep previous data if needed\n if (\n options.keepPreviousData &&\n !state.dataUpdateCount &&\n prevQueryResult?.isSuccess &&\n status !== 'error'\n ) {\n data = prevQueryResult.data\n dataUpdatedAt = prevQueryResult.dataUpdatedAt\n status = prevQueryResult.status\n isPreviousData = true\n }\n // Select data if needed\n else 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 if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\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 === 'loading'\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 ? (options.placeholderData as PlaceholderDataFunction<TQueryData>)()\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n placeholderData = replaceData(\n prevResult?.data,\n placeholderData,\n options,\n )\n this.selectError = null\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError)\n }\n this.selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = placeholderData 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 isLoading = status === 'loading'\n const isError = status === 'error'\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\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 && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove,\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 this.currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = { cache: true }\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.useErrorBoundary) {\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 private 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 this.previousQueryResult = this.currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.updateTimers()\n }\n }\n\n private notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.currentResult.data!)\n this.options.onSettled?.(this.currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.currentResult.error!)\n this.options.onSettled?.(undefined, this.currentResult.error!)\n }\n\n // Then 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 if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated',\n })\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","constructor","client","options","trackedProps","Set","selectError","bindMethods","setOptions","remove","bind","refetch","onSubscribe","listeners","length","currentQuery","addObserver","shouldFetchOnMount","executeFetch","updateTimers","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","updateQuery","mounted","hasListeners","shouldFetchOptionally","updateResult","staleTime","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","currentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","refetchPage","fetch","meta","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","staleTimeoutId","setTimeout","refetchInterval","data","nextInterval","refetchIntervalId","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","undefined","clearInterval","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","state","currentQueryInitialState","prevQueryResult","previousQueryResult","error","errorUpdatedAt","fetchStatus","status","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","keepPreviousData","dataUpdateCount","isSuccess","select","selectFn","selectResult","replaceData","process","env","NODE_ENV","getLogger","placeholderData","Date","now","isFetching","isLoading","isError","isInitialLoading","failureCount","fetchFailureCount","errorUpdateCount","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","cache","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","useErrorBoundary","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":";;;;;;;;;;AAwCO,MAAMA,aAAN,SAMGC,yBANH,CAMsD;AA8B3DC,EAAAA,WAAW,CACTC,MADS,EAETC,OAFS,EAST;AACA,IAAA,KAAA,EAAA,CAAA;IAEA,IAAKD,CAAAA,MAAL,GAAcA,MAAd,CAAA;IACA,IAAKC,CAAAA,OAAL,GAAeA,OAAf,CAAA;AACA,IAAA,IAAA,CAAKC,YAAL,GAAoB,IAAIC,GAAJ,EAApB,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,IAAnB,CAAA;AACA,IAAA,IAAA,CAAKC,WAAL,EAAA,CAAA;IACA,IAAKC,CAAAA,UAAL,CAAgBL,OAAhB,CAAA,CAAA;AACD,GAAA;;AAESI,EAAAA,WAAW,GAAS;IAC5B,IAAKE,CAAAA,MAAL,GAAc,IAAKA,CAAAA,MAAL,CAAYC,IAAZ,CAAiB,IAAjB,CAAd,CAAA;IACA,IAAKC,CAAAA,OAAL,GAAe,IAAKA,CAAAA,OAAL,CAAaD,IAAb,CAAkB,IAAlB,CAAf,CAAA;AACD,GAAA;;AAESE,EAAAA,WAAW,GAAS;AAC5B,IAAA,IAAI,KAAKC,SAAL,CAAeC,MAAf,KAA0B,CAA9B,EAAiC;AAC/B,MAAA,IAAA,CAAKC,YAAL,CAAkBC,WAAlB,CAA8B,IAA9B,CAAA,CAAA;;MAEA,IAAIC,kBAAkB,CAAC,IAAKF,CAAAA,YAAN,EAAoB,IAAKZ,CAAAA,OAAzB,CAAtB,EAAyD;AACvD,QAAA,IAAA,CAAKe,YAAL,EAAA,CAAA;AACD,OAAA;;AAED,MAAA,IAAA,CAAKC,YAAL,EAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAESC,EAAAA,aAAa,GAAS;AAC9B,IAAA,IAAI,CAAC,IAAA,CAAKP,SAAL,CAAeC,MAApB,EAA4B;AAC1B,MAAA,IAAA,CAAKO,OAAL,EAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAEDC,EAAAA,sBAAsB,GAAY;AAChC,IAAA,OAAOC,aAAa,CAClB,IAAKR,CAAAA,YADa,EAElB,IAAA,CAAKZ,OAFa,EAGlB,IAAKA,CAAAA,OAAL,CAAaqB,kBAHK,CAApB,CAAA;AAKD,GAAA;;AAEDC,EAAAA,wBAAwB,GAAY;AAClC,IAAA,OAAOF,aAAa,CAClB,IAAKR,CAAAA,YADa,EAElB,IAAA,CAAKZ,OAFa,EAGlB,IAAKA,CAAAA,OAAL,CAAauB,oBAHK,CAApB,CAAA;AAKD,GAAA;;AAEDL,EAAAA,OAAO,GAAS;IACd,IAAKR,CAAAA,SAAL,GAAiB,EAAjB,CAAA;AACA,IAAA,IAAA,CAAKc,iBAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKC,oBAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKb,YAAL,CAAkBc,cAAlB,CAAiC,IAAjC,CAAA,CAAA;AACD,GAAA;;AAEDrB,EAAAA,UAAU,CACRL,OADQ,EAQR2B,aARQ,EASF;IACN,MAAMC,WAAW,GAAG,IAAA,CAAK5B,OAAzB,CAAA;IACA,MAAM6B,SAAS,GAAG,IAAA,CAAKjB,YAAvB,CAAA;IAEA,IAAKZ,CAAAA,OAAL,GAAe,IAAKD,CAAAA,MAAL,CAAY+B,mBAAZ,CAAgC9B,OAAhC,CAAf,CAAA;;IAEA,IAAI,CAAC+B,yBAAmB,CAACH,WAAD,EAAc,IAAK5B,CAAAA,OAAnB,CAAxB,EAAqD;AACnD,MAAA,IAAA,CAAKD,MAAL,CAAYiC,aAAZ,EAAA,CAA4BC,MAA5B,CAAmC;AACjCC,QAAAA,IAAI,EAAE,wBAD2B;QAEjCC,KAAK,EAAE,KAAKvB,YAFqB;AAGjCwB,QAAAA,QAAQ,EAAE,IAAA;OAHZ,CAAA,CAAA;AAKD,KAAA;;AAED,IAAA,IACE,OAAO,IAAA,CAAKpC,OAAL,CAAaqC,OAApB,KAAgC,WAAhC,IACA,OAAO,KAAKrC,OAAL,CAAaqC,OAApB,KAAgC,SAFlC,EAGE;AACA,MAAA,MAAM,IAAIC,KAAJ,CAAU,kCAAV,CAAN,CAAA;AACD,KAnBK;;;AAsBN,IAAA,IAAI,CAAC,IAAA,CAAKtC,OAAL,CAAauC,QAAlB,EAA4B;AAC1B,MAAA,IAAA,CAAKvC,OAAL,CAAauC,QAAb,GAAwBX,WAAW,CAACW,QAApC,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKC,WAAL,EAAA,CAAA;AAEA,IAAA,MAAMC,OAAO,GAAG,IAAA,CAAKC,YAAL,EAAhB,CA5BM;;AA+BN,IAAA,IACED,OAAO,IACPE,qBAAqB,CACnB,KAAK/B,YADc,EAEnBiB,SAFmB,EAGnB,IAAK7B,CAAAA,OAHc,EAInB4B,WAJmB,CAFvB,EAQE;AACA,MAAA,IAAA,CAAKb,YAAL,EAAA,CAAA;AACD,KAzCK;;;AA4CN,IAAA,IAAA,CAAK6B,YAAL,CAAkBjB,aAAlB,CAAA,CA5CM;;IA+CN,IACEc,OAAO,KACN,IAAA,CAAK7B,YAAL,KAAsBiB,SAAtB,IACC,IAAA,CAAK7B,OAAL,CAAaqC,OAAb,KAAyBT,WAAW,CAACS,OADtC,IAEC,IAAA,CAAKrC,OAAL,CAAa6C,SAAb,KAA2BjB,WAAW,CAACiB,SAHlC,CADT,EAKE;AACA,MAAA,IAAA,CAAKC,kBAAL,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,MAAMC,mBAAmB,GAAG,IAAA,CAAKC,sBAAL,EAA5B,CAxDM;;IA2DN,IACEP,OAAO,KACN,IAAK7B,CAAAA,YAAL,KAAsBiB,SAAtB,IACC,KAAK7B,OAAL,CAAaqC,OAAb,KAAyBT,WAAW,CAACS,OADtC,IAECU,mBAAmB,KAAK,IAAA,CAAKE,sBAHxB,CADT,EAKE;MACA,IAAKC,CAAAA,qBAAL,CAA2BH,mBAA3B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAEDI,mBAAmB,CACjBnD,OADiB,EAQmB;AACpC,IAAA,MAAMmC,KAAK,GAAG,IAAKpC,CAAAA,MAAL,CAAYiC,aAAZ,EAA4BoB,CAAAA,KAA5B,CAAkC,IAAA,CAAKrD,MAAvC,EAA+CC,OAA/C,CAAd,CAAA;AAEA,IAAA,OAAO,KAAKqD,YAAL,CAAkBlB,KAAlB,EAAyBnC,OAAzB,CAAP,CAAA;AACD,GAAA;;AAEDsD,EAAAA,gBAAgB,GAAuC;AACrD,IAAA,OAAO,KAAKC,aAAZ,CAAA;AACD,GAAA;;EAEDC,WAAW,CACTC,MADS,EAE2B;IACpC,MAAMC,aAAa,GAAG,EAAtB,CAAA;IAEAC,MAAM,CAACC,IAAP,CAAYH,MAAZ,EAAoBI,OAApB,CAA6BC,GAAD,IAAS;AACnCH,MAAAA,MAAM,CAACI,cAAP,CAAsBL,aAAtB,EAAqCI,GAArC,EAA0C;AACxCE,QAAAA,YAAY,EAAE,KAD0B;AAExCC,QAAAA,UAAU,EAAE,IAF4B;AAGxCC,QAAAA,GAAG,EAAE,MAAM;AACT,UAAA,IAAA,CAAKjE,YAAL,CAAkBkE,GAAlB,CAAsBL,GAAtB,CAAA,CAAA;UACA,OAAOL,MAAM,CAACK,GAAD,CAAb,CAAA;AACD,SAAA;OANH,CAAA,CAAA;KADF,CAAA,CAAA;AAWA,IAAA,OAAOJ,aAAP,CAAA;AACD,GAAA;;AAEDU,EAAAA,eAAe,GAAuD;AACpE,IAAA,OAAO,KAAKxD,YAAZ,CAAA;AACD,GAAA;;AAEDN,EAAAA,MAAM,GAAS;AACb,IAAA,IAAA,CAAKP,MAAL,CAAYiC,aAAZ,GAA4B1B,MAA5B,CAAmC,KAAKM,YAAxC,CAAA,CAAA;AACD,GAAA;;AAEDJ,EAAAA,OAAO,CAAY;IACjB6D,WADiB;IAEjB,GAAGrE,OAAAA;AAFc,GAAA,GAGiC,EAH7C,EAKL;AACA,IAAA,OAAO,IAAKsE,CAAAA,KAAL,CAAW,EAChB,GAAGtE,OADa;AAEhBuE,MAAAA,IAAI,EAAE;AAAEF,QAAAA,WAAAA;AAAF,OAAA;AAFU,KAAX,CAAP,CAAA;AAID,GAAA;;EAEDG,eAAe,CACbxE,OADa,EAQgC;IAC7C,MAAMyE,gBAAgB,GAAG,IAAK1E,CAAAA,MAAL,CAAY+B,mBAAZ,CAAgC9B,OAAhC,CAAzB,CAAA;AAEA,IAAA,MAAMmC,KAAK,GAAG,IAAKpC,CAAAA,MAAL,CACXiC,aADW,EAEXoB,CAAAA,KAFW,CAEL,IAAA,CAAKrD,MAFA,EAEQ0E,gBAFR,CAAd,CAAA;IAGAtC,KAAK,CAACuC,oBAAN,GAA6B,IAA7B,CAAA;AAEA,IAAA,OAAOvC,KAAK,CAACmC,KAAN,EAAA,CAAcK,IAAd,CAAmB,MAAM,IAAKtB,CAAAA,YAAL,CAAkBlB,KAAlB,EAAyBsC,gBAAzB,CAAzB,CAAP,CAAA;AACD,GAAA;;EAESH,KAAK,CACbM,YADa,EAEgC;AAAA,IAAA,IAAA,qBAAA,CAAA;;AAC7C,IAAA,OAAO,IAAK7D,CAAAA,YAAL,CAAkB,EACvB,GAAG6D,YADoB;AAEvBC,MAAAA,aAAa,EAAED,CAAAA,qBAAAA,GAAAA,YAAY,CAACC,aAAf,KAAgC,IAAA,GAAA,qBAAA,GAAA,IAAA;KAFxC,CAAA,CAGJF,IAHI,CAGC,MAAM;AACZ,MAAA,IAAA,CAAK/B,YAAL,EAAA,CAAA;AACA,MAAA,OAAO,KAAKW,aAAZ,CAAA;AACD,KANM,CAAP,CAAA;AAOD,GAAA;;EAEOxC,YAAY,CAClB6D,YADkB,EAEe;AACjC;IACA,IAAKpC,CAAAA,WAAL,GAFiC;;IAKjC,IAAIsC,OAAwC,GAAG,IAAA,CAAKlE,YAAL,CAAkB0D,KAAlB,CAC7C,IAAKtE,CAAAA,OADwC,EAE7C4E,YAF6C,CAA/C,CAAA;;AAKA,IAAA,IAAI,EAACA,YAAD,IAAA,IAAA,IAACA,YAAY,CAAEG,YAAf,CAAJ,EAAiC;AAC/BD,MAAAA,OAAO,GAAGA,OAAO,CAACE,KAAR,CAAcC,UAAd,CAAV,CAAA;AACD,KAAA;;AAED,IAAA,OAAOH,OAAP,CAAA;AACD,GAAA;;AAEOhC,EAAAA,kBAAkB,GAAS;AACjC,IAAA,IAAA,CAAKtB,iBAAL,EAAA,CAAA;;AAEA,IAAA,IACE0D,cAAQ,IACR,IAAK3B,CAAAA,aAAL,CAAmB4B,OADnB,IAEA,CAACC,oBAAc,CAAC,IAAKpF,CAAAA,OAAL,CAAa6C,SAAd,CAHjB,EAIE;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,MAAMwC,IAAI,GAAGC,oBAAc,CACzB,KAAK/B,aAAL,CAAmBgC,aADM,EAEzB,KAAKvF,OAAL,CAAa6C,SAFY,CAA3B,CAXiC;AAiBjC;;AACA,IAAA,MAAM2C,OAAO,GAAGH,IAAI,GAAG,CAAvB,CAAA;AAEA,IAAA,IAAA,CAAKI,cAAL,GAAsBC,UAAU,CAAC,MAAM;AACrC,MAAA,IAAI,CAAC,IAAA,CAAKnC,aAAL,CAAmB4B,OAAxB,EAAiC;AAC/B,QAAA,IAAA,CAAKvC,YAAL,EAAA,CAAA;AACD,OAAA;KAH6B,EAI7B4C,OAJ6B,CAAhC,CAAA;AAKD,GAAA;;AAEOxC,EAAAA,sBAAsB,GAAG;AAAA,IAAA,IAAA,qBAAA,CAAA;;IAC/B,OAAO,OAAO,IAAKhD,CAAAA,OAAL,CAAa2F,eAApB,KAAwC,UAAxC,GACH,IAAA,CAAK3F,OAAL,CAAa2F,eAAb,CAA6B,IAAKpC,CAAAA,aAAL,CAAmBqC,IAAhD,EAAsD,IAAA,CAAKhF,YAA3D,CADG,GAEH,CAAA,qBAAA,GAAA,IAAA,CAAKZ,OAAL,CAAa2F,eAFV,KAAA,IAAA,GAAA,qBAAA,GAE6B,KAFpC,CAAA;AAGD,GAAA;;EAEOzC,qBAAqB,CAAC2C,YAAD,EAAqC;AAChE,IAAA,IAAA,CAAKpE,oBAAL,EAAA,CAAA;IAEA,IAAKwB,CAAAA,sBAAL,GAA8B4C,YAA9B,CAAA;;IAEA,IACEX,cAAQ,IACR,IAAKlF,CAAAA,OAAL,CAAaqC,OAAb,KAAyB,KADzB,IAEA,CAAC+C,oBAAc,CAAC,IAAA,CAAKnC,sBAAN,CAFf,IAGA,KAAKA,sBAAL,KAAgC,CAJlC,EAKE;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK6C,iBAAL,GAAyBC,WAAW,CAAC,MAAM;MACzC,IACE,IAAA,CAAK/F,OAAL,CAAagG,2BAAb,IACAC,yBAAY,CAACC,SAAb,EAFF,EAGE;AACA,QAAA,IAAA,CAAKnF,YAAL,EAAA,CAAA;AACD,OAAA;KANiC,EAOjC,IAAKkC,CAAAA,sBAP4B,CAApC,CAAA;AAQD,GAAA;;AAEOjC,EAAAA,YAAY,GAAS;AAC3B,IAAA,IAAA,CAAK8B,kBAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKI,qBAAL,CAA2B,IAAKF,CAAAA,sBAAL,EAA3B,CAAA,CAAA;AACD,GAAA;;AAEOxB,EAAAA,iBAAiB,GAAS;IAChC,IAAI,IAAA,CAAKiE,cAAT,EAAyB;MACvBU,YAAY,CAAC,IAAKV,CAAAA,cAAN,CAAZ,CAAA;MACA,IAAKA,CAAAA,cAAL,GAAsBW,SAAtB,CAAA;AACD,KAAA;AACF,GAAA;;AAEO3E,EAAAA,oBAAoB,GAAS;IACnC,IAAI,IAAA,CAAKqE,iBAAT,EAA4B;MAC1BO,aAAa,CAAC,IAAKP,CAAAA,iBAAN,CAAb,CAAA;MACA,IAAKA,CAAAA,iBAAL,GAAyBM,SAAzB,CAAA;AACD,KAAA;AACF,GAAA;;AAES/C,EAAAA,YAAY,CACpBlB,KADoB,EAEpBnC,OAFoB,EASgB;IACpC,MAAM6B,SAAS,GAAG,IAAA,CAAKjB,YAAvB,CAAA;IACA,MAAMgB,WAAW,GAAG,IAAA,CAAK5B,OAAzB,CAAA;IACA,MAAMsG,UAAU,GAAG,IAAA,CAAK/C,aAAxB,CAAA;IAGA,MAAMgD,eAAe,GAAG,IAAA,CAAKC,kBAA7B,CAAA;IACA,MAAMC,iBAAiB,GAAG,IAAA,CAAKC,oBAA/B,CAAA;AACA,IAAA,MAAMC,WAAW,GAAGxE,KAAK,KAAKN,SAA9B,CAAA;IACA,MAAM+E,iBAAiB,GAAGD,WAAW,GACjCxE,KAAK,CAAC0E,KAD2B,GAEjC,IAAA,CAAKC,wBAFT,CAAA;IAGA,MAAMC,eAAe,GAAGJ,WAAW,GAC/B,KAAKpD,aAD0B,GAE/B,KAAKyD,mBAFT,CAAA;IAIA,MAAM;AAAEH,MAAAA,KAAAA;AAAF,KAAA,GAAY1E,KAAlB,CAAA;IACA,IAAI;MAAEoD,aAAF;MAAiB0B,KAAjB;MAAwBC,cAAxB;MAAwCC,WAAxC;AAAqDC,MAAAA,MAAAA;AAArD,KAAA,GAAgEP,KAApE,CAAA;IACA,IAAIQ,cAAc,GAAG,KAArB,CAAA;IACA,IAAIC,iBAAiB,GAAG,KAAxB,CAAA;IACA,IAAI1B,IAAJ,CApBoC;;IAuBpC,IAAI5F,OAAO,CAACuH,kBAAZ,EAAgC;AAC9B,MAAA,MAAM9E,OAAO,GAAG,IAAKC,CAAAA,YAAL,EAAhB,CAAA;MAEA,MAAM8E,YAAY,GAAG,CAAC/E,OAAD,IAAY3B,kBAAkB,CAACqB,KAAD,EAAQnC,OAAR,CAAnD,CAAA;AAEA,MAAA,MAAMyH,eAAe,GACnBhF,OAAO,IAAIE,qBAAqB,CAACR,KAAD,EAAQN,SAAR,EAAmB7B,OAAnB,EAA4B4B,WAA5B,CADlC,CAAA;;MAGA,IAAI4F,YAAY,IAAIC,eAApB,EAAqC;AACnCN,QAAAA,WAAW,GAAGO,gBAAQ,CAACvF,KAAK,CAACnC,OAAN,CAAc2H,WAAf,CAAR,GACV,UADU,GAEV,QAFJ,CAAA;;QAGA,IAAI,CAACpC,aAAL,EAAoB;AAClB6B,UAAAA,MAAM,GAAG,SAAT,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,IAAIpH,OAAO,CAACuH,kBAAR,KAA+B,aAAnC,EAAkD;AAChDJ,QAAAA,WAAW,GAAG,MAAd,CAAA;AACD,OAAA;AACF,KA1CmC;;;AA6CpC,IAAA,IACEnH,OAAO,CAAC4H,gBAAR,IACA,CAACf,KAAK,CAACgB,eADP,IAEAd,eAFA,IAAA,IAAA,IAEAA,eAAe,CAAEe,SAFjB,IAGAV,MAAM,KAAK,OAJb,EAKE;MACAxB,IAAI,GAAGmB,eAAe,CAACnB,IAAvB,CAAA;MACAL,aAAa,GAAGwB,eAAe,CAACxB,aAAhC,CAAA;MACA6B,MAAM,GAAGL,eAAe,CAACK,MAAzB,CAAA;AACAC,MAAAA,cAAc,GAAG,IAAjB,CAAA;AACD,KAVD;SAYK,IAAIrH,OAAO,CAAC+H,MAAR,IAAkB,OAAOlB,KAAK,CAACjB,IAAb,KAAsB,WAA5C,EAAyD;AAC5D;AACA,MAAA,IACEU,UAAU,IACVO,KAAK,CAACjB,IAAN,MAAeW,eAAf,IAAeA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAEX,IAAhC,CADA,IAEA5F,OAAO,CAAC+H,MAAR,KAAmB,IAAA,CAAKC,QAH1B,EAIE;QACApC,IAAI,GAAG,KAAKqC,YAAZ,CAAA;AACD,OAND,MAMO;QACL,IAAI;AACF,UAAA,IAAA,CAAKD,QAAL,GAAgBhI,OAAO,CAAC+H,MAAxB,CAAA;UACAnC,IAAI,GAAG5F,OAAO,CAAC+H,MAAR,CAAelB,KAAK,CAACjB,IAArB,CAAP,CAAA;AACAA,UAAAA,IAAI,GAAGsC,iBAAW,CAAC5B,UAAD,IAACA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEV,IAAb,EAAmBA,IAAnB,EAAyB5F,OAAzB,CAAlB,CAAA;UACA,IAAKiI,CAAAA,YAAL,GAAoBrC,IAApB,CAAA;UACA,IAAKzF,CAAAA,WAAL,GAAmB,IAAnB,CAAA;SALF,CAME,OAAOA,WAAP,EAAoB;AACpB,UAAA,IAAIgI,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,YAAA,IAAA,CAAKtI,MAAL,CAAYuI,SAAZ,EAAwBrB,CAAAA,KAAxB,CAA8B9G,WAA9B,CAAA,CAAA;AACD,WAAA;;UACD,IAAKA,CAAAA,WAAL,GAAmBA,WAAnB,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAtBI;SAwBA;MACHyF,IAAI,GAAGiB,KAAK,CAACjB,IAAb,CAAA;AACD,KAnFmC;;;AAsFpC,IAAA,IACE,OAAO5F,OAAO,CAACuI,eAAf,KAAmC,WAAnC,IACA,OAAO3C,IAAP,KAAgB,WADhB,IAEAwB,MAAM,KAAK,SAHb,EAIE;MACA,IAAImB,eAAJ,CADA;;AAIA,MAAA,IACEjC,UAAU,IAAV,IAAA,IAAAA,UAAU,CAAEgB,iBAAZ,IACAtH,OAAO,CAACuI,eAAR,MAA4B9B,iBAA5B,IAAA,IAAA,GAAA,KAAA,CAAA,GAA4BA,iBAAiB,CAAE8B,eAA/C,CAFF,EAGE;QACAA,eAAe,GAAGjC,UAAU,CAACV,IAA7B,CAAA;AACD,OALD,MAKO;AACL2C,QAAAA,eAAe,GACb,OAAOvI,OAAO,CAACuI,eAAf,KAAmC,UAAnC,GACKvI,OAAO,CAACuI,eAAT,EADJ,GAEIvI,OAAO,CAACuI,eAHd,CAAA;;QAIA,IAAIvI,OAAO,CAAC+H,MAAR,IAAkB,OAAOQ,eAAP,KAA2B,WAAjD,EAA8D;UAC5D,IAAI;AACFA,YAAAA,eAAe,GAAGvI,OAAO,CAAC+H,MAAR,CAAeQ,eAAf,CAAlB,CAAA;AACAA,YAAAA,eAAe,GAAGL,iBAAW,CAC3B5B,UAD2B,IAC3BA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEV,IADe,EAE3B2C,eAF2B,EAG3BvI,OAH2B,CAA7B,CAAA;YAKA,IAAKG,CAAAA,WAAL,GAAmB,IAAnB,CAAA;WAPF,CAQE,OAAOA,WAAP,EAAoB;AACpB,YAAA,IAAIgI,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,cAAA,IAAA,CAAKtI,MAAL,CAAYuI,SAAZ,EAAwBrB,CAAAA,KAAxB,CAA8B9G,WAA9B,CAAA,CAAA;AACD,aAAA;;YACD,IAAKA,CAAAA,WAAL,GAAmBA,WAAnB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,IAAI,OAAOoI,eAAP,KAA2B,WAA/B,EAA4C;AAC1CnB,QAAAA,MAAM,GAAG,SAAT,CAAA;AACAxB,QAAAA,IAAI,GAAG2C,eAAP,CAAA;AACAjB,QAAAA,iBAAiB,GAAG,IAApB,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAI,IAAA,CAAKnH,WAAT,EAAsB;MACpB8G,KAAK,GAAG,KAAK9G,WAAb,CAAA;MACAyF,IAAI,GAAG,KAAKqC,YAAZ,CAAA;AACAf,MAAAA,cAAc,GAAGsB,IAAI,CAACC,GAAL,EAAjB,CAAA;AACArB,MAAAA,MAAM,GAAG,OAAT,CAAA;AACD,KAAA;;AAED,IAAA,MAAMsB,UAAU,GAAGvB,WAAW,KAAK,UAAnC,CAAA;AACA,IAAA,MAAMwB,SAAS,GAAGvB,MAAM,KAAK,SAA7B,CAAA;AACA,IAAA,MAAMwB,OAAO,GAAGxB,MAAM,KAAK,OAA3B,CAAA;AAEA,IAAA,MAAM3D,MAA8C,GAAG;MACrD2D,MADqD;MAErDD,WAFqD;MAGrDwB,SAHqD;MAIrDb,SAAS,EAAEV,MAAM,KAAK,SAJ+B;MAKrDwB,OALqD;MAMrDC,gBAAgB,EAAEF,SAAS,IAAID,UANsB;MAOrD9C,IAPqD;MAQrDL,aARqD;MASrD0B,KATqD;MAUrDC,cAVqD;MAWrD4B,YAAY,EAAEjC,KAAK,CAACkC,iBAXiC;MAYrDC,gBAAgB,EAAEnC,KAAK,CAACmC,gBAZ6B;MAarDC,SAAS,EAAEpC,KAAK,CAACgB,eAAN,GAAwB,CAAxB,IAA6BhB,KAAK,CAACmC,gBAAN,GAAyB,CAbZ;AAcrDE,MAAAA,mBAAmB,EACjBrC,KAAK,CAACgB,eAAN,GAAwBjB,iBAAiB,CAACiB,eAA1C,IACAhB,KAAK,CAACmC,gBAAN,GAAyBpC,iBAAiB,CAACoC,gBAhBQ;MAiBrDN,UAjBqD;AAkBrDS,MAAAA,YAAY,EAAET,UAAU,IAAI,CAACC,SAlBwB;AAmBrDS,MAAAA,cAAc,EAAER,OAAO,IAAI/B,KAAK,CAACtB,aAAN,KAAwB,CAnBE;MAoBrD8D,QAAQ,EAAElC,WAAW,KAAK,QApB2B;MAqBrDG,iBArBqD;MAsBrDD,cAtBqD;AAuBrDiC,MAAAA,cAAc,EAAEV,OAAO,IAAI/B,KAAK,CAACtB,aAAN,KAAwB,CAvBE;AAwBrDJ,MAAAA,OAAO,EAAEA,OAAO,CAAChD,KAAD,EAAQnC,OAAR,CAxBqC;MAyBrDQ,OAAO,EAAE,KAAKA,OAzBuC;AA0BrDF,MAAAA,MAAM,EAAE,IAAKA,CAAAA,MAAAA;KA1Bf,CAAA;AA6BA,IAAA,OAAOmD,MAAP,CAAA;AACD,GAAA;;EAEDb,YAAY,CAACjB,aAAD,EAAsC;IAChD,MAAM2E,UAAU,GAAG,IAAA,CAAK/C,aAAxB,CAAA;IAIA,MAAMgG,UAAU,GAAG,IAAA,CAAKlG,YAAL,CAAkB,KAAKzC,YAAvB,EAAqC,IAAKZ,CAAAA,OAA1C,CAAnB,CAAA;AACA,IAAA,IAAA,CAAKwG,kBAAL,GAA0B,IAAK5F,CAAAA,YAAL,CAAkBiG,KAA5C,CAAA;AACA,IAAA,IAAA,CAAKH,oBAAL,GAA4B,IAAK1G,CAAAA,OAAjC,CAPgD;;AAUhD,IAAA,IAAI+B,yBAAmB,CAACwH,UAAD,EAAajD,UAAb,CAAvB,EAAiD;AAC/C,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK/C,aAAL,GAAqBgG,UAArB,CAdgD;;AAiBhD,IAAA,MAAMC,oBAAmC,GAAG;AAAEC,MAAAA,KAAK,EAAE,IAAA;KAArD,CAAA;;IAEA,MAAMC,qBAAqB,GAAG,MAAe;MAC3C,IAAI,CAACpD,UAAL,EAAiB;AACf,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;;MAED,MAAM;AAAEqD,QAAAA,mBAAAA;AAAF,OAAA,GAA0B,KAAK3J,OAArC,CAAA;;AAEA,MAAA,IACE2J,mBAAmB,KAAK,KAAxB,IACC,CAACA,mBAAD,IAAwB,CAAC,IAAK1J,CAAAA,YAAL,CAAkB2J,IAF9C,EAGE;AACA,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;;MAED,MAAMC,aAAa,GAAG,IAAI3J,GAAJ,CAAQyJ,mBAAR,IAAA,IAAA,GAAQA,mBAAR,GAA+B,IAAK1J,CAAAA,YAApC,CAAtB,CAAA;;AAEA,MAAA,IAAI,IAAKD,CAAAA,OAAL,CAAa8J,gBAAjB,EAAmC;QACjCD,aAAa,CAAC1F,GAAd,CAAkB,OAAlB,CAAA,CAAA;AACD,OAAA;;MAED,OAAOR,MAAM,CAACC,IAAP,CAAY,IAAA,CAAKL,aAAjB,CAAgCwG,CAAAA,IAAhC,CAAsCjG,GAAD,IAAS;QACnD,MAAMkG,QAAQ,GAAGlG,GAAjB,CAAA;QACA,MAAMmG,OAAO,GAAG,IAAA,CAAK1G,aAAL,CAAmByG,QAAnB,CAAiC1D,KAAAA,UAAU,CAAC0D,QAAD,CAA3D,CAAA;AACA,QAAA,OAAOC,OAAO,IAAIJ,aAAa,CAACK,GAAd,CAAkBF,QAAlB,CAAlB,CAAA;AACD,OAJM,CAAP,CAAA;KApBF,CAAA;;AA2BA,IAAA,IAAI,CAAArI,aAAa,IAAb,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAa,CAAEjB,SAAf,MAA6B,KAA7B,IAAsCgJ,qBAAqB,EAA/D,EAAmE;MACjEF,oBAAoB,CAAC9I,SAArB,GAAiC,IAAjC,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKuB,MAAL,CAAY,EAAE,GAAGuH,oBAAL;MAA2B,GAAG7H,aAAAA;KAA1C,CAAA,CAAA;AACD,GAAA;;AAEOa,EAAAA,WAAW,GAAS;AAC1B,IAAA,MAAML,KAAK,GAAG,IAAKpC,CAAAA,MAAL,CAAYiC,aAAZ,EAAA,CAA4BoB,KAA5B,CAAkC,IAAKrD,CAAAA,MAAvC,EAA+C,IAAA,CAAKC,OAApD,CAAd,CAAA;;AAEA,IAAA,IAAImC,KAAK,KAAK,IAAKvB,CAAAA,YAAnB,EAAiC;AAC/B,MAAA,OAAA;AACD,KAAA;;IAED,MAAMiB,SAAS,GAAG,IAAA,CAAKjB,YAAvB,CAAA;IAGA,IAAKA,CAAAA,YAAL,GAAoBuB,KAApB,CAAA;AACA,IAAA,IAAA,CAAK2E,wBAAL,GAAgC3E,KAAK,CAAC0E,KAAtC,CAAA;IACA,IAAKG,CAAAA,mBAAL,GAA2B,IAAA,CAAKzD,aAAhC,CAAA;;IAEA,IAAI,IAAA,CAAKb,YAAL,EAAJ,EAAyB;AACvBb,MAAAA,SAAS,QAAT,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAEH,cAAX,CAA0B,IAA1B,CAAA,CAAA;MACAS,KAAK,CAACtB,WAAN,CAAkB,IAAlB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAEDsJ,aAAa,CAACC,MAAD,EAAsC;IACjD,MAAMzI,aAA4B,GAAG,EAArC,CAAA;;AAEA,IAAA,IAAIyI,MAAM,CAAClI,IAAP,KAAgB,SAApB,EAA+B;AAC7BP,MAAAA,aAAa,CAAC0I,SAAd,GAA0B,CAACD,MAAM,CAACE,MAAlC,CAAA;AACD,KAFD,MAEO,IAAIF,MAAM,CAAClI,IAAP,KAAgB,OAAhB,IAA2B,CAACqI,wBAAgB,CAACH,MAAM,CAACnD,KAAR,CAAhD,EAAgE;MACrEtF,aAAa,CAAC6I,OAAd,GAAwB,IAAxB,CAAA;AACD,KAAA;;IAED,IAAK5H,CAAAA,YAAL,CAAkBjB,aAAlB,CAAA,CAAA;;IAEA,IAAI,IAAA,CAAKe,YAAL,EAAJ,EAAyB;AACvB,MAAA,IAAA,CAAK1B,YAAL,EAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAEOiB,MAAM,CAACN,aAAD,EAAqC;IACjD8I,2BAAa,CAACC,KAAd,CAAoB,MAAM;AACxB;MACA,IAAI/I,aAAa,CAAC0I,SAAlB,EAA6B;AAAA,QAAA,IAAA,qBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,cAAA,CAAA;;AAC3B,QAAA,CAAA,qBAAA,GAAA,CAAA,aAAA,GAAA,IAAA,CAAKrK,OAAL,EAAaqK,SAAb,+DAAyB,IAAK9G,CAAAA,aAAL,CAAmBqC,IAA5C,CAAA,CAAA;QACA,CAAK5F,qBAAAA,GAAAA,CAAAA,cAAAA,GAAAA,IAAAA,CAAAA,OAAL,EAAa2K,SAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,cAAA,EAAyB,KAAKpH,aAAL,CAAmBqC,IAA5C,EAAmD,IAAnD,CAAA,CAAA;AACD,OAHD,MAGO,IAAIjE,aAAa,CAAC6I,OAAlB,EAA2B;AAAA,QAAA,IAAA,qBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,CAAA;;AAChC,QAAA,CAAA,qBAAA,GAAA,CAAA,cAAA,GAAA,IAAA,CAAKxK,OAAL,EAAawK,OAAb,gEAAuB,IAAKjH,CAAAA,aAAL,CAAmB0D,KAA1C,CAAA,CAAA;QACA,CAAKjH,sBAAAA,GAAAA,CAAAA,cAAAA,GAAAA,IAAAA,CAAAA,OAAL,EAAa2K,SAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAA,IAAA,CAAA,cAAA,EAAyBvE,SAAzB,EAAoC,IAAA,CAAK7C,aAAL,CAAmB0D,KAAvD,CAAA,CAAA;AACD,OARuB;;;MAWxB,IAAItF,aAAa,CAACjB,SAAlB,EAA6B;AAC3B,QAAA,IAAA,CAAKA,SAAL,CAAemD,OAAf,CAAwB+G,QAAD,IAAc;UACnCA,QAAQ,CAAC,IAAKrH,CAAAA,aAAN,CAAR,CAAA;SADF,CAAA,CAAA;AAGD,OAfuB;;;MAkBxB,IAAI5B,aAAa,CAAC8H,KAAlB,EAAyB;AACvB,QAAA,IAAA,CAAK1J,MAAL,CAAYiC,aAAZ,EAAA,CAA4BC,MAA5B,CAAmC;UACjCE,KAAK,EAAE,KAAKvB,YADqB;AAEjCsB,UAAAA,IAAI,EAAE,wBAAA;SAFR,CAAA,CAAA;AAID,OAAA;KAvBH,CAAA,CAAA;AAyBD,GAAA;;AA7oB0D,CAAA;;AAgpB7D,SAAS2I,iBAAT,CACE1I,KADF,EAEEnC,OAFF,EAGW;EACT,OACEA,OAAO,CAACqC,OAAR,KAAoB,KAApB,IACA,CAACF,KAAK,CAAC0E,KAAN,CAAYtB,aADb,IAEA,EAAEpD,KAAK,CAAC0E,KAAN,CAAYO,MAAZ,KAAuB,OAAvB,IAAkCpH,OAAO,CAAC8K,YAAR,KAAyB,KAA7D,CAHF,CAAA;AAKD,CAAA;;AAED,SAAShK,kBAAT,CACEqB,KADF,EAEEnC,OAFF,EAGW;EACT,OACE6K,iBAAiB,CAAC1I,KAAD,EAAQnC,OAAR,CAAjB,IACCmC,KAAK,CAAC0E,KAAN,CAAYtB,aAAZ,GAA4B,CAA5B,IACCnE,aAAa,CAACe,KAAD,EAAQnC,OAAR,EAAiBA,OAAO,CAAC+K,cAAzB,CAHjB,CAAA;AAKD,CAAA;;AAED,SAAS3J,aAAT,CACEe,KADF,EAEEnC,OAFF,EAGEgL,KAHF,EAME;AACA,EAAA,IAAIhL,OAAO,CAACqC,OAAR,KAAoB,KAAxB,EAA+B;AAC7B,IAAA,MAAM4I,KAAK,GAAG,OAAOD,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,CAAC7I,KAAD,CAAnC,GAA6C6I,KAA3D,CAAA;AAEA,IAAA,OAAOC,KAAK,KAAK,QAAV,IAAuBA,KAAK,KAAK,KAAV,IAAmB9F,OAAO,CAAChD,KAAD,EAAQnC,OAAR,CAAxD,CAAA;AACD,GAAA;;AACD,EAAA,OAAO,KAAP,CAAA;AACD,CAAA;;AAED,SAAS2C,qBAAT,CACER,KADF,EAEEN,SAFF,EAGE7B,OAHF,EAIE4B,WAJF,EAKW;AACT,EAAA,OACE5B,OAAO,CAACqC,OAAR,KAAoB,KAApB,KACCF,KAAK,KAAKN,SAAV,IAAuBD,WAAW,CAACS,OAAZ,KAAwB,KADhD,CAEC,KAAA,CAACrC,OAAO,CAACkL,QAAT,IAAqB/I,KAAK,CAAC0E,KAAN,CAAYO,MAAZ,KAAuB,OAF7C,KAGAjC,OAAO,CAAChD,KAAD,EAAQnC,OAAR,CAJT,CAAA;AAMD,CAAA;;AAED,SAASmF,OAAT,CACEhD,KADF,EAEEnC,OAFF,EAGW;AACT,EAAA,OAAOmC,KAAK,CAACgJ,aAAN,CAAoBnL,OAAO,CAAC6C,SAA5B,CAAP,CAAA;AACD;;;;"}
@@ -339,12 +339,15 @@ class QueryObserver extends Subscribable {
339
339
  }
340
340
 
341
341
  const isFetching = fetchStatus === 'fetching';
342
+ const isLoading = status === 'loading';
343
+ const isError = status === 'error';
342
344
  const result = {
343
345
  status,
344
346
  fetchStatus,
345
- isLoading: status === 'loading',
347
+ isLoading,
346
348
  isSuccess: status === 'success',
347
- isError: status === 'error',
349
+ isError,
350
+ isInitialLoading: isLoading && isFetching,
348
351
  data,
349
352
  dataUpdatedAt,
350
353
  error,
@@ -353,13 +356,13 @@ class QueryObserver extends Subscribable {
353
356
  errorUpdateCount: state.errorUpdateCount,
354
357
  isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,
355
358
  isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,
356
- isFetching: isFetching,
357
- isRefetching: isFetching && status !== 'loading',
358
- isLoadingError: status === 'error' && state.dataUpdatedAt === 0,
359
+ isFetching,
360
+ isRefetching: isFetching && !isLoading,
361
+ isLoadingError: isError && state.dataUpdatedAt === 0,
359
362
  isPaused: fetchStatus === 'paused',
360
363
  isPlaceholderData,
361
364
  isPreviousData,
362
- isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,
365
+ isRefetchError: isError && state.dataUpdatedAt !== 0,
363
366
  isStale: isStale(query, options),
364
367
  refetch: this.refetch,
365
368
  remove: this.remove