@tanstack/query-core 5.0.0-alpha.34 → 5.0.0-alpha.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/build/lib/focusManager.d.ts +1 -1
  2. package/build/lib/focusManager.d.ts.map +1 -0
  3. package/build/lib/focusManager.esm.js.map +1 -1
  4. package/build/lib/focusManager.js.map +1 -1
  5. package/build/lib/focusManager.mjs.map +1 -1
  6. package/build/lib/hydration.d.ts.map +1 -0
  7. package/build/lib/hydration.esm.js.map +1 -1
  8. package/build/lib/hydration.js.map +1 -1
  9. package/build/lib/hydration.mjs.map +1 -1
  10. package/build/lib/index.d.ts.map +1 -0
  11. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  12. package/build/lib/infiniteQueryBehavior.esm.js.map +1 -1
  13. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  14. package/build/lib/infiniteQueryBehavior.mjs.map +1 -1
  15. package/build/lib/infiniteQueryObserver.d.ts +1 -1
  16. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  17. package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
  18. package/build/lib/infiniteQueryObserver.js.map +1 -1
  19. package/build/lib/infiniteQueryObserver.mjs.map +1 -1
  20. package/build/lib/mutation.d.ts +1 -1
  21. package/build/lib/mutation.d.ts.map +1 -0
  22. package/build/lib/mutation.esm.js.map +1 -1
  23. package/build/lib/mutation.js.map +1 -1
  24. package/build/lib/mutation.mjs.map +1 -1
  25. package/build/lib/mutationCache.d.ts +2 -2
  26. package/build/lib/mutationCache.d.ts.map +1 -0
  27. package/build/lib/mutationCache.esm.js.map +1 -1
  28. package/build/lib/mutationCache.js.map +1 -1
  29. package/build/lib/mutationCache.mjs.map +1 -1
  30. package/build/lib/mutationObserver.d.ts +1 -1
  31. package/build/lib/mutationObserver.d.ts.map +1 -0
  32. package/build/lib/mutationObserver.esm.js.map +1 -1
  33. package/build/lib/mutationObserver.js.map +1 -1
  34. package/build/lib/mutationObserver.mjs.map +1 -1
  35. package/build/lib/notifyManager.d.ts +3 -3
  36. package/build/lib/notifyManager.d.ts.map +1 -0
  37. package/build/lib/notifyManager.esm.js.map +1 -1
  38. package/build/lib/notifyManager.js.map +1 -1
  39. package/build/lib/notifyManager.mjs.map +1 -1
  40. package/build/lib/onlineManager.d.ts +1 -1
  41. package/build/lib/onlineManager.d.ts.map +1 -0
  42. package/build/lib/onlineManager.esm.js.map +1 -1
  43. package/build/lib/onlineManager.js.map +1 -1
  44. package/build/lib/onlineManager.mjs.map +1 -1
  45. package/build/lib/queriesObserver.d.ts +1 -1
  46. package/build/lib/queriesObserver.d.ts.map +1 -0
  47. package/build/lib/queriesObserver.esm.js.map +1 -1
  48. package/build/lib/queriesObserver.js.map +1 -1
  49. package/build/lib/queriesObserver.mjs.map +1 -1
  50. package/build/lib/query.d.ts +2 -2
  51. package/build/lib/query.d.ts.map +1 -0
  52. package/build/lib/query.esm.js.map +1 -1
  53. package/build/lib/query.js.map +1 -1
  54. package/build/lib/query.mjs.map +1 -1
  55. package/build/lib/queryCache.d.ts +2 -2
  56. package/build/lib/queryCache.d.ts.map +1 -0
  57. package/build/lib/queryCache.esm.js +1 -0
  58. package/build/lib/queryCache.esm.js.map +1 -1
  59. package/build/lib/queryCache.js +1 -0
  60. package/build/lib/queryCache.js.map +1 -1
  61. package/build/lib/queryCache.mjs +2 -0
  62. package/build/lib/queryCache.mjs.map +1 -1
  63. package/build/lib/queryClient.d.ts +1 -2
  64. package/build/lib/queryClient.d.ts.map +1 -0
  65. package/build/lib/queryClient.esm.js +1 -0
  66. package/build/lib/queryClient.esm.js.map +1 -1
  67. package/build/lib/queryClient.js +1 -0
  68. package/build/lib/queryClient.js.map +1 -1
  69. package/build/lib/queryClient.mjs +2 -0
  70. package/build/lib/queryClient.mjs.map +1 -1
  71. package/build/lib/queryObserver.d.ts +2 -3
  72. package/build/lib/queryObserver.d.ts.map +1 -0
  73. package/build/lib/queryObserver.esm.js +2 -3
  74. package/build/lib/queryObserver.esm.js.map +1 -1
  75. package/build/lib/queryObserver.js +2 -3
  76. package/build/lib/queryObserver.js.map +1 -1
  77. package/build/lib/queryObserver.mjs.map +1 -1
  78. package/build/lib/removable.d.ts.map +1 -0
  79. package/build/lib/removable.esm.js.map +1 -1
  80. package/build/lib/removable.js.map +1 -1
  81. package/build/lib/removable.mjs.map +1 -1
  82. package/build/lib/retryer.d.ts +4 -4
  83. package/build/lib/retryer.d.ts.map +1 -0
  84. package/build/lib/retryer.esm.js +2 -0
  85. package/build/lib/retryer.esm.js.map +1 -1
  86. package/build/lib/retryer.js +2 -0
  87. package/build/lib/retryer.js.map +1 -1
  88. package/build/lib/retryer.mjs +2 -0
  89. package/build/lib/retryer.mjs.map +1 -1
  90. package/build/lib/subscribable.d.ts +1 -1
  91. package/build/lib/subscribable.d.ts.map +1 -0
  92. package/build/lib/subscribable.esm.js.map +1 -1
  93. package/build/lib/subscribable.js.map +1 -1
  94. package/build/lib/subscribable.mjs.map +1 -1
  95. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  96. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  97. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  98. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  99. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  100. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  101. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  102. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  103. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  104. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  105. package/build/lib/tests/query.test.d.ts.map +1 -0
  106. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  107. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  108. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  109. package/build/lib/tests/utils.d.ts +2 -2
  110. package/build/lib/tests/utils.d.ts.map +1 -0
  111. package/build/lib/tests/utils.test.d.ts.map +1 -0
  112. package/build/lib/types.d.ts +30 -31
  113. package/build/lib/types.d.ts.map +1 -0
  114. package/build/lib/utils.d.ts +3 -3
  115. package/build/lib/utils.d.ts.map +1 -0
  116. package/build/lib/utils.esm.js.map +1 -1
  117. package/build/lib/utils.js.map +1 -1
  118. package/build/lib/utils.mjs.map +1 -1
  119. package/build/umd/index.development.js +6 -0
  120. package/build/umd/index.development.js.map +1 -1
  121. package/build/umd/index.production.js +1 -1
  122. package/build/umd/index.production.js.map +1 -1
  123. package/package.json +3 -1
  124. package/src/queryClient.ts +2 -1
  125. package/src/queryObserver.ts +11 -10
  126. package/src/tests/queryCache.test.tsx +1 -2
  127. package/src/tests/queryClient.test.tsx +6 -2
  128. package/src/types.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, DefaultError } 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, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["_classPrivateFieldLooseKey","QueryObserver","Subscribable","constructor","client","options","undefined","Set","_classPrivateFieldLooseBase","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","size","addObserver","shouldFetchOnMount","onUnsubscribe","hasListeners","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","data","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","dataUpdatedAt","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","isStale","onQueryUpdate","promise","throwOnError","catch","noop","isServer","isValidTimeout","time","timeUntilStale","timeout","setTimeout","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","some","typedKey","changed","has","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
1
+ {"version":3,"file":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type {\n DefaultedQueryObserverOptions,\n DefaultError,\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type { Query, QueryState, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["_client","_classPrivateFieldLooseKey","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","_executeFetch","_updateStaleTimeout","_computeRefetchInterval","_updateRefetchInterval","_updateTimers","_clearStaleTimeout","_clearRefetchInterval","_updateResult","_updateQuery","_notify","QueryObserver","Subscribable","constructor","client","options","Object","defineProperty","value","_notify2","_updateQuery2","_updateResult2","_clearRefetchInterval2","_clearStaleTimeout2","_updateTimers2","_updateRefetchInterval2","_computeRefetchInterval2","_updateStaleTimeout2","_executeFetch2","writable","undefined","Set","_classPrivateFieldLooseBase","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","size","addObserver","shouldFetchOnMount","onUnsubscribe","hasListeners","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","keys","forEach","key","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","_fetchOptions$cancelR","cancelRefetch","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","data","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","dataUpdatedAt","select","replaceData","selectError","placeholderData","_classPrivateFieldLoo","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","isStale","onQueryUpdate","promise","throwOnError","catch","noop","isServer","isValidTimeout","time","timeUntilStale","timeout","setTimeout","_ref","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","some","typedKey","changed","has","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","suspense","isStaleByTime"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.mjs","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, DefaultError } 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, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","size","addObserver","shouldFetchOnMount","onUnsubscribe","hasListeners","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","refetchInterval","data","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","some","typedKey","changed","has","onQueryUpdate","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
1
+ {"version":3,"file":"queryObserver.mjs","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type {\n DefaultedQueryObserverOptions,\n DefaultError,\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type { Query, QueryState, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","size","addObserver","shouldFetchOnMount","onUnsubscribe","hasListeners","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","#executeFetch","promise","throwOnError","catch","noop","#updateStaleTimeout","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","#computeRefetchInterval","refetchInterval","data","#updateRefetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","#updateTimers","#clearStaleTimeout","clearTimeout","#clearRefetchInterval","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","#updateResult","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","some","typedKey","changed","has","#updateQuery","onQueryUpdate","#notify","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removable.d.ts","sourceRoot":"","sources":["../../src/removable.ts"],"names":[],"mappings":"AAEA,8BAAsB,SAAS;;IAC7B,MAAM,EAAG,MAAM,CAAA;IAGf,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,UAAU,IAAI,IAAI;IAU5B,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ3D,SAAS,CAAC,cAAc;IAOxB,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI;CAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"removable.esm.js","sources":["../../src/removable.ts"],"sourcesContent":["import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n"],"names":["Removable","destroy","clearGcTimeout","scheduleGc","isValidTimeout","gcTime","setTimeout","optionalRemove","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","undefined"],"mappings":";;;AAAkD,IAAA,UAAA,gBAAA,0BAAA,CAAA,WAAA,CAAA,CAAA;AAE3C,MAAeA,SAAS,CAAC;AAAA,EAAA,WAAA,GAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,UAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAI9BC,EAAAA,OAAO,GAAS;IACd,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,GAAA;AAEUC,EAAAA,UAAU,GAAS;IAC3B,IAAI,CAACD,cAAc,EAAE,CAAA;AAErB,IAAA,IAAIE,cAAc,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;MAC/B,2BAAI,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA,UAAA,CAAA,GAAcC,UAAU,CAAC,MAAM;QACjC,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,OAAC,EAAE,IAAI,CAACF,MAAM,CAAC,CAAA;AACjB,KAAA;AACF,GAAA;EAEUG,YAAY,CAACC,SAA6B,EAAQ;AAC1D;IACA,IAAI,CAACJ,MAAM,GAAGK,IAAI,CAACC,GAAG,CACpB,IAAI,CAACN,MAAM,IAAI,CAAC,EAChBI,SAAS,IAATA,IAAAA,GAAAA,SAAS,GAAKG,QAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAClD,CAAA;AACH,GAAA;AAEUX,EAAAA,cAAc,GAAG;AACzB,IAAA,IAAA,2BAAA,CAAI,IAAI,EAAa,UAAA,CAAA,CAAA,UAAA,CAAA,EAAA;MACnBY,YAAY,CAAA,2BAAA,CAAC,IAAI,EAAY,UAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAC7B,MAAA,2BAAA,CAAA,IAAI,4BAAcC,SAAS,CAAA;AAC7B,KAAA;AACF,GAAA;AAGF;;;;"}
1
+ {"version":3,"file":"removable.esm.js","sources":["../../src/removable.ts"],"sourcesContent":["import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n"],"names":["_gcTimeout","_classPrivateFieldLooseKey","Removable","constructor","Object","defineProperty","writable","value","destroy","clearGcTimeout","scheduleGc","isValidTimeout","gcTime","_classPrivateFieldLooseBase","setTimeout","optionalRemove","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","undefined"],"mappings":";;;AAAkD,IAAAA,UAAA,gBAAAC,0BAAA,CAAA,WAAA,CAAA,CAAA;AAE3C,MAAeC,SAAS,CAAC;EAAAC,WAAA,GAAA;IAAAC,MAAA,CAAAC,cAAA,CAAA,IAAA,EAAAL,UAAA,EAAA;MAAAM,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAI9BC,EAAAA,OAAOA,GAAS;IACd,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,GAAA;AAEUC,EAAAA,UAAUA,GAAS;IAC3B,IAAI,CAACD,cAAc,EAAE,CAAA;AAErB,IAAA,IAAIE,cAAc,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;MAC/BC,2BAAA,CAAA,IAAI,EAAAb,UAAA,CAAA,CAAAA,UAAA,CAAcc,GAAAA,UAAU,CAAC,MAAM;QACjC,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,OAAC,EAAE,IAAI,CAACH,MAAM,CAAC,CAAA;AACjB,KAAA;AACF,GAAA;EAEUI,YAAYA,CAACC,SAA6B,EAAQ;AAC1D;IACA,IAAI,CAACL,MAAM,GAAGM,IAAI,CAACC,GAAG,CACpB,IAAI,CAACP,MAAM,IAAI,CAAC,EAChBK,SAAS,IAATA,IAAAA,GAAAA,SAAS,GAAKG,QAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAC/C,CAAC,CAAA;AACH,GAAA;AAEUZ,EAAAA,cAAcA,GAAG;AACzB,IAAA,IAAAI,2BAAA,CAAI,IAAI,EAAAb,UAAA,CAAA,CAAAA,UAAA,CAAa,EAAA;MACnBsB,YAAY,CAAAT,2BAAA,CAAC,IAAI,EAAAb,UAAA,CAAA,CAAAA,UAAA,CAAW,CAAC,CAAA;AAC7Ba,MAAAA,2BAAA,KAAI,EAAAb,UAAA,CAAAA,CAAAA,UAAA,IAAcuB,SAAS,CAAA;AAC7B,KAAA;AACF,GAAA;AAGF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"removable.js","sources":["../../src/removable.ts"],"sourcesContent":["import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n"],"names":["_classPrivateFieldLooseKey","Removable","destroy","clearGcTimeout","scheduleGc","isValidTimeout","gcTime","_classPrivateFieldLooseBase","setTimeout","optionalRemove","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","undefined"],"mappings":";;;;;AAAkD,IAAA,UAAA,gBAAAA,mDAAA,CAAA,WAAA,CAAA,CAAA;AAE3C,MAAeC,SAAS,CAAC;AAAA,EAAA,WAAA,GAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,UAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAI9BC,EAAAA,OAAO,GAAS;IACd,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,GAAA;AAEUC,EAAAA,UAAU,GAAS;IAC3B,IAAI,CAACD,cAAc,EAAE,CAAA;AAErB,IAAA,IAAIE,oBAAc,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;MAC/BC,oDAAI,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA,UAAA,CAAA,GAAcC,UAAU,CAAC,MAAM;QACjC,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,OAAC,EAAE,IAAI,CAACH,MAAM,CAAC,CAAA;AACjB,KAAA;AACF,GAAA;EAEUI,YAAY,CAACC,SAA6B,EAAQ;AAC1D;IACA,IAAI,CAACL,MAAM,GAAGM,IAAI,CAACC,GAAG,CACpB,IAAI,CAACP,MAAM,IAAI,CAAC,EAChBK,SAAS,IAATA,IAAAA,GAAAA,SAAS,GAAKG,cAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAClD,CAAA;AACH,GAAA;AAEUZ,EAAAA,cAAc,GAAG;AACzB,IAAA,IAAAI,oDAAA,CAAI,IAAI,EAAa,UAAA,CAAA,CAAA,UAAA,CAAA,EAAA;MACnBS,YAAY,CAAAT,oDAAA,CAAC,IAAI,EAAY,UAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAC7B,MAAAA,oDAAA,CAAA,IAAI,4BAAcU,SAAS,CAAA;AAC7B,KAAA;AACF,GAAA;AAGF;;;;"}
1
+ {"version":3,"file":"removable.js","sources":["../../src/removable.ts"],"sourcesContent":["import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n"],"names":["_gcTimeout","_classPrivateFieldLooseKey","Removable","constructor","Object","defineProperty","writable","value","destroy","clearGcTimeout","scheduleGc","isValidTimeout","gcTime","_classPrivateFieldLooseBase","setTimeout","optionalRemove","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","undefined"],"mappings":";;;;;AAAkD,IAAAA,UAAA,gBAAAC,mDAAA,CAAA,WAAA,CAAA,CAAA;AAE3C,MAAeC,SAAS,CAAC;EAAAC,WAAA,GAAA;IAAAC,MAAA,CAAAC,cAAA,CAAA,IAAA,EAAAL,UAAA,EAAA;MAAAM,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAI9BC,EAAAA,OAAOA,GAAS;IACd,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,GAAA;AAEUC,EAAAA,UAAUA,GAAS;IAC3B,IAAI,CAACD,cAAc,EAAE,CAAA;AAErB,IAAA,IAAIE,oBAAc,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;MAC/BC,oDAAA,CAAA,IAAI,EAAAb,UAAA,CAAA,CAAAA,UAAA,CAAcc,GAAAA,UAAU,CAAC,MAAM;QACjC,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,OAAC,EAAE,IAAI,CAACH,MAAM,CAAC,CAAA;AACjB,KAAA;AACF,GAAA;EAEUI,YAAYA,CAACC,SAA6B,EAAQ;AAC1D;IACA,IAAI,CAACL,MAAM,GAAGM,IAAI,CAACC,GAAG,CACpB,IAAI,CAACP,MAAM,IAAI,CAAC,EAChBK,SAAS,IAATA,IAAAA,GAAAA,SAAS,GAAKG,cAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAC/C,CAAC,CAAA;AACH,GAAA;AAEUZ,EAAAA,cAAcA,GAAG;AACzB,IAAA,IAAAI,oDAAA,CAAI,IAAI,EAAAb,UAAA,CAAA,CAAAA,UAAA,CAAa,EAAA;MACnBsB,YAAY,CAAAT,oDAAA,CAAC,IAAI,EAAAb,UAAA,CAAA,CAAAA,UAAA,CAAW,CAAC,CAAA;AAC7Ba,MAAAA,oDAAA,KAAI,EAAAb,UAAA,CAAAA,CAAAA,UAAA,IAAcuB,SAAS,CAAA;AAC7B,KAAA;AACF,GAAA;AAGF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"removable.mjs","sources":["../../src/removable.ts"],"sourcesContent":["import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n"],"names":["Removable","destroy","clearGcTimeout","scheduleGc","isValidTimeout","gcTime","setTimeout","optionalRemove","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","undefined"],"mappings":";;AAEO,MAAeA,SAAS,CAAC;AAE9B,EAAA,UAAU,CAAA;AAEVC,EAAAA,OAAO,GAAS;IACd,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,GAAA;AAEUC,EAAAA,UAAU,GAAS;IAC3B,IAAI,CAACD,cAAc,EAAE,CAAA;AAErB,IAAA,IAAIE,cAAc,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;AAC/B,MAAA,IAAI,CAAC,UAAU,GAAGC,UAAU,CAAC,MAAM;QACjC,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,OAAC,EAAE,IAAI,CAACF,MAAM,CAAC,CAAA;AACjB,KAAA;AACF,GAAA;EAEUG,YAAY,CAACC,SAA6B,EAAQ;AAC1D;IACA,IAAI,CAACJ,MAAM,GAAGK,IAAI,CAACC,GAAG,CACpB,IAAI,CAACN,MAAM,IAAI,CAAC,EAChBI,SAAS,KAAKG,QAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CACnD,CAAA;AACH,GAAA;AAEUX,EAAAA,cAAc,GAAG;AACzB,IAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnBY,MAAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC7B,MAAA,IAAI,CAAC,UAAU,GAAGC,SAAS,CAAA;AAC7B,KAAA;AACF,GAAA;AAGF;;;;"}
1
+ {"version":3,"file":"removable.mjs","sources":["../../src/removable.ts"],"sourcesContent":["import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n"],"names":["Removable","destroy","clearGcTimeout","scheduleGc","isValidTimeout","gcTime","setTimeout","optionalRemove","updateGcTime","newGcTime","Math","max","isServer","Infinity","clearTimeout","undefined"],"mappings":";;AAEO,MAAeA,SAAS,CAAC;AAE9B,EAAA,UAAU,CAAA;AAEVC,EAAAA,OAAOA,GAAS;IACd,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,GAAA;AAEUC,EAAAA,UAAUA,GAAS;IAC3B,IAAI,CAACD,cAAc,EAAE,CAAA;AAErB,IAAA,IAAIE,cAAc,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;AAC/B,MAAA,IAAI,CAAC,UAAU,GAAGC,UAAU,CAAC,MAAM;QACjC,IAAI,CAACC,cAAc,EAAE,CAAA;AACvB,OAAC,EAAE,IAAI,CAACF,MAAM,CAAC,CAAA;AACjB,KAAA;AACF,GAAA;EAEUG,YAAYA,CAACC,SAA6B,EAAQ;AAC1D;IACA,IAAI,CAACJ,MAAM,GAAGK,IAAI,CAACC,GAAG,CACpB,IAAI,CAACN,MAAM,IAAI,CAAC,EAChBI,SAAS,KAAKG,QAAQ,GAAGC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CACnD,CAAC,CAAA;AACH,GAAA;AAEUX,EAAAA,cAAcA,GAAG;AACzB,IAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnBY,MAAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC7B,MAAA,IAAI,CAAC,UAAU,GAAGC,SAAS,CAAA;AAC7B,KAAA;AACF,GAAA;AAGF;;;;"}
@@ -18,10 +18,10 @@ export interface Retryer<TData = unknown> {
18
18
  cancelRetry: () => void;
19
19
  continueRetry: () => void;
20
20
  }
21
- export declare type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>;
22
- declare type ShouldRetryFunction<TError = DefaultError> = (failureCount: number, error: TError) => boolean;
23
- export declare type RetryDelayValue<TError> = number | RetryDelayFunction<TError>;
24
- declare type RetryDelayFunction<TError = DefaultError> = (failureCount: number, error: TError) => number;
21
+ export type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>;
22
+ type ShouldRetryFunction<TError = DefaultError> = (failureCount: number, error: TError) => boolean;
23
+ export type RetryDelayValue<TError> = number | RetryDelayFunction<TError>;
24
+ type RetryDelayFunction<TError = DefaultError> = (failureCount: number, error: TError) => number;
25
25
  export declare function canFetch(networkMode: NetworkMode | undefined): boolean;
26
26
  export declare class CancelledError {
27
27
  revert?: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryer.d.ts","sourceRoot":"","sources":["../../src/retryer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAIvE,UAAU,aAAa,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY;IAC5D,EAAE,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACpC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;CACrC;AAED,MAAM,WAAW,OAAO,CAAC,KAAK,GAAG,OAAO;IACtC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,aAAa,KAAK,IAAI,CAAA;IAC/C,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,MAAM,MAAM,UAAU,CAAC,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAE/E,KAAK,mBAAmB,CAAC,MAAM,GAAG,YAAY,IAAI,CAChD,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,KACV,OAAO,CAAA;AAEZ,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAEzE,KAAK,kBAAkB,CAAC,MAAM,GAAG,YAAY,IAAI,CAC/C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,KACV,MAAM,CAAA;AAMX,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAItE;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;gBACJ,OAAO,CAAC,EAAE,aAAa;CAIpC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED,wBAAgB,aAAa,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY,EAClE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC,CAuJhB"}
@@ -2,6 +2,8 @@ import { focusManager } from './focusManager.esm.js';
2
2
  import { onlineManager } from './onlineManager.esm.js';
3
3
  import { sleep } from './utils.esm.js';
4
4
 
5
+ // TYPES
6
+
5
7
  function defaultRetryDelay(failureCount) {
6
8
  return Math.min(1000 * 2 ** failureCount, 30000);
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retryer.esm.js","sources":["../../src/retryer.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n"],"names":["defaultRetryDelay","failureCount","Math","min","canFetch","networkMode","onlineManager","isOnline","CancelledError","constructor","options","revert","silent","isCancelledError","value","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","Promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","focusManager","isFocused","resolve","onSuccess","onError","pause","continueResolve","canContinue","onPause","then","undefined","onContinue","run","promiseOrValue","fn","error","catch","retry","retryDelay","delay","shouldRetry","onFail","sleep","continue","didContinue"],"mappings":"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"}
1
+ {"version":3,"file":"retryer.esm.js","sources":["../../src/retryer.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n"],"names":["defaultRetryDelay","failureCount","Math","min","canFetch","networkMode","onlineManager","isOnline","CancelledError","constructor","options","revert","silent","isCancelledError","value","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","Promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","focusManager","isFocused","resolve","onSuccess","onError","pause","continueResolve","canContinue","onPause","then","undefined","onContinue","run","promiseOrValue","fn","error","catch","_config$retry","_config$retryDelay","retry","retryDelay","delay","shouldRetry","onFail","sleep","continue","didContinue"],"mappings":";;;;AAKA;;AAqCA,SAASA,iBAAiBA,CAACC,YAAoB,EAAE;EAC/C,OAAOC,IAAI,CAACC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAIF,YAAY,EAAE,KAAK,CAAC,CAAA;AAClD,CAAA;AAEO,SAASG,QAAQA,CAACC,WAAoC,EAAW;AACtE,EAAA,OAAO,CAACA,WAAW,IAAXA,IAAAA,GAAAA,WAAW,GAAI,QAAQ,MAAM,QAAQ,GACzCC,aAAa,CAACC,QAAQ,EAAE,GACxB,IAAI,CAAA;AACV,CAAA;AAEO,MAAMC,cAAc,CAAC;EAG1BC,WAAWA,CAACC,OAAuB,EAAE;AACnC,IAAA,IAAI,CAACC,MAAM,GAAGD,OAAO,IAAPA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEC,MAAM,CAAA;AAC7B,IAAA,IAAI,CAACC,MAAM,GAAGF,OAAO,IAAPA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEE,MAAM,CAAA;AAC/B,GAAA;AACF,CAAA;AAEO,SAASC,gBAAgBA,CAACC,KAAU,EAA2B;EACpE,OAAOA,KAAK,YAAYN,cAAc,CAAA;AACxC,CAAA;AAEO,SAASO,aAAaA,CAC3BC,MAAoC,EACpB;EAChB,IAAIC,gBAAgB,GAAG,KAAK,CAAA;EAC5B,IAAIhB,YAAY,GAAG,CAAC,CAAA;EACpB,IAAIiB,UAAU,GAAG,KAAK,CAAA;AACtB,EAAA,IAAIC,UAAsD,CAAA;AAC1D,EAAA,IAAIC,cAAqC,CAAA;AACzC,EAAA,IAAIC,aAAsC,CAAA;EAE1C,MAAMC,OAAO,GAAG,IAAIC,OAAO,CAAQ,CAACC,YAAY,EAAEC,WAAW,KAAK;AAChEL,IAAAA,cAAc,GAAGI,YAAY,CAAA;AAC7BH,IAAAA,aAAa,GAAGI,WAAW,CAAA;AAC7B,GAAC,CAAC,CAAA;EAEF,MAAMC,MAAM,GAAIC,aAA6B,IAAW;IACtD,IAAI,CAACT,UAAU,EAAE;AACfU,MAAAA,MAAM,CAAC,IAAIpB,cAAc,CAACmB,aAAa,CAAC,CAAC,CAAA;AAEzCX,MAAAA,MAAM,CAACa,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZb,MAAM,CAACa,KAAK,EAAI,CAAA;AAClB,KAAA;GACD,CAAA;EACD,MAAMC,WAAW,GAAGA,MAAM;AACxBb,IAAAA,gBAAgB,GAAG,IAAI,CAAA;GACxB,CAAA;EAED,MAAMc,aAAa,GAAGA,MAAM;AAC1Bd,IAAAA,gBAAgB,GAAG,KAAK,CAAA;GACzB,CAAA;EAED,MAAMe,WAAW,GAAGA,MAClB,CAACC,YAAY,CAACC,SAAS,EAAE,IACxBlB,MAAM,CAACX,WAAW,KAAK,QAAQ,IAAI,CAACC,aAAa,CAACC,QAAQ,EAAG,CAAA;EAEhE,MAAM4B,OAAO,GAAIrB,KAAU,IAAK;IAC9B,IAAI,CAACI,UAAU,EAAE;AACfA,MAAAA,UAAU,GAAG,IAAI,CAAA;MACjBF,MAAM,CAACoB,SAAS,IAAhBpB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAACoB,SAAS,CAAGtB,KAAK,CAAC,CAAA;MACzBK,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,EAAI,CAAA;MACdC,cAAc,CAACN,KAAK,CAAC,CAAA;AACvB,KAAA;GACD,CAAA;EAED,MAAMc,MAAM,GAAId,KAAU,IAAK;IAC7B,IAAI,CAACI,UAAU,EAAE;AACfA,MAAAA,UAAU,GAAG,IAAI,CAAA;MACjBF,MAAM,CAACqB,OAAO,IAAdrB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAACqB,OAAO,CAAGvB,KAAK,CAAC,CAAA;MACvBK,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,EAAI,CAAA;MACdE,aAAa,CAACP,KAAK,CAAC,CAAA;AACtB,KAAA;GACD,CAAA;EAED,MAAMwB,KAAK,GAAGA,MAAM;AAClB,IAAA,OAAO,IAAIf,OAAO,CAAEgB,eAAe,IAAK;MACtCpB,UAAU,GAAIL,KAAK,IAAK;AACtB,QAAA,MAAM0B,WAAW,GAAGtB,UAAU,IAAI,CAACc,WAAW,EAAE,CAAA;AAChD,QAAA,IAAIQ,WAAW,EAAE;UACfD,eAAe,CAACzB,KAAK,CAAC,CAAA;AACxB,SAAA;AACA,QAAA,OAAO0B,WAAW,CAAA;OACnB,CAAA;AACDxB,MAAAA,MAAM,CAACyB,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAdzB,MAAM,CAACyB,OAAO,EAAI,CAAA;AACpB,KAAC,CAAC,CAACC,IAAI,CAAC,MAAM;AACZvB,MAAAA,UAAU,GAAGwB,SAAS,CAAA;MACtB,IAAI,CAACzB,UAAU,EAAE;AACfF,QAAAA,MAAM,CAAC4B,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjB5B,MAAM,CAAC4B,UAAU,EAAI,CAAA;AACvB,OAAA;AACF,KAAC,CAAC,CAAA;GACH,CAAA;;AAED;EACA,MAAMC,GAAG,GAAGA,MAAM;AAChB;AACA,IAAA,IAAI3B,UAAU,EAAE;AACd,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI4B,cAAmB,CAAA;;AAEvB;IACA,IAAI;AACFA,MAAAA,cAAc,GAAG9B,MAAM,CAAC+B,EAAE,EAAE,CAAA;KAC7B,CAAC,OAAOC,KAAK,EAAE;AACdF,MAAAA,cAAc,GAAGvB,OAAO,CAACK,MAAM,CAACoB,KAAK,CAAC,CAAA;AACxC,KAAA;AAEAzB,IAAAA,OAAO,CAACY,OAAO,CAACW,cAAc,CAAC,CAC5BJ,IAAI,CAACP,OAAO,CAAC,CACbc,KAAK,CAAED,KAAK,IAAK;MAAA,IAAAE,aAAA,EAAAC,kBAAA,CAAA;AAChB;AACA,MAAA,IAAIjC,UAAU,EAAE;AACd,QAAA,OAAA;AACF,OAAA;;AAEA;MACA,MAAMkC,KAAK,GAAAF,CAAAA,aAAA,GAAGlC,MAAM,CAACoC,KAAK,KAAA,IAAA,GAAAF,aAAA,GAAI,CAAC,CAAA;MAC/B,MAAMG,UAAU,GAAAF,CAAAA,kBAAA,GAAGnC,MAAM,CAACqC,UAAU,KAAA,IAAA,GAAAF,kBAAA,GAAInD,iBAAiB,CAAA;AACzD,MAAA,MAAMsD,KAAK,GACT,OAAOD,UAAU,KAAK,UAAU,GAC5BA,UAAU,CAACpD,YAAY,EAAE+C,KAAK,CAAC,GAC/BK,UAAU,CAAA;MAChB,MAAME,WAAW,GACfH,KAAK,KAAK,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IAAInD,YAAY,GAAGmD,KAAM,IAClD,OAAOA,KAAK,KAAK,UAAU,IAAIA,KAAK,CAACnD,YAAY,EAAE+C,KAAK,CAAE,CAAA;AAE7D,MAAA,IAAI/B,gBAAgB,IAAI,CAACsC,WAAW,EAAE;AACpC;QACA3B,MAAM,CAACoB,KAAK,CAAC,CAAA;AACb,QAAA,OAAA;AACF,OAAA;AAEA/C,MAAAA,YAAY,EAAE,CAAA;;AAEd;MACAe,MAAM,CAACwC,MAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbxC,MAAM,CAACwC,MAAM,CAAGvD,YAAY,EAAE+C,KAAK,CAAC,CAAA;;AAEpC;AACAS,MAAAA,KAAK,CAACH,KAAK,CAAA;AACT;OACCZ,IAAI,CAAC,MAAM;QACV,IAAIV,WAAW,EAAE,EAAE;UACjB,OAAOM,KAAK,EAAE,CAAA;AAChB,SAAA;AACA,QAAA,OAAA;AACF,OAAC,CAAC,CACDI,IAAI,CAAC,MAAM;AACV,QAAA,IAAIzB,gBAAgB,EAAE;UACpBW,MAAM,CAACoB,KAAK,CAAC,CAAA;AACf,SAAC,MAAM;AACLH,UAAAA,GAAG,EAAE,CAAA;AACP,SAAA;AACF,OAAC,CAAC,CAAA;AACN,KAAC,CAAC,CAAA;GACL,CAAA;;AAED;AACA,EAAA,IAAIzC,QAAQ,CAACY,MAAM,CAACX,WAAW,CAAC,EAAE;AAChCwC,IAAAA,GAAG,EAAE,CAAA;AACP,GAAC,MAAM;AACLP,IAAAA,KAAK,EAAE,CAACI,IAAI,CAACG,GAAG,CAAC,CAAA;AACnB,GAAA;EAEA,OAAO;IACLvB,OAAO;IACPI,MAAM;IACNgC,QAAQ,EAAEA,MAAM;AACd,MAAA,MAAMC,WAAW,GAAGxC,UAAU,IAAVA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,EAAI,CAAA;MAClC,OAAOwC,WAAW,GAAGrC,OAAO,GAAGC,OAAO,CAACY,OAAO,EAAE,CAAA;KACjD;IACDL,WAAW;AACXC,IAAAA,aAAAA;GACD,CAAA;AACH;;;;"}
@@ -4,6 +4,8 @@ var focusManager = require('./focusManager.js');
4
4
  var onlineManager = require('./onlineManager.js');
5
5
  var utils = require('./utils.js');
6
6
 
7
+ // TYPES
8
+
7
9
  function defaultRetryDelay(failureCount) {
8
10
  return Math.min(1000 * 2 ** failureCount, 30000);
9
11
  }