@tanstack/query-core 5.0.0-alpha.7 → 5.0.0-alpha.81

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 (296) hide show
  1. package/build/lib/_virtual/{_rollupPluginBabelHelpers.js → _rollupPluginBabelHelpers.legacy.cjs} +1 -1
  2. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs.map +1 -0
  3. package/build/lib/_virtual/{_rollupPluginBabelHelpers.esm.js → _rollupPluginBabelHelpers.legacy.js} +1 -1
  4. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js.map +1 -0
  5. package/build/lib/{focusManager.mjs → focusManager.cjs} +12 -8
  6. package/build/lib/focusManager.cjs.map +1 -0
  7. package/build/lib/focusManager.d.ts +2 -1
  8. package/build/lib/focusManager.d.ts.map +1 -0
  9. package/build/lib/focusManager.js +22 -40
  10. package/build/lib/focusManager.js.map +1 -1
  11. package/build/lib/focusManager.legacy.cjs +91 -0
  12. package/build/lib/focusManager.legacy.cjs.map +1 -0
  13. package/build/lib/{focusManager.esm.js → focusManager.legacy.js} +7 -6
  14. package/build/lib/focusManager.legacy.js.map +1 -0
  15. package/build/lib/{hydration.mjs → hydration.cjs} +11 -20
  16. package/build/lib/hydration.cjs.map +1 -0
  17. package/build/lib/hydration.d.ts +3 -6
  18. package/build/lib/hydration.d.ts.map +1 -0
  19. package/build/lib/hydration.js +7 -28
  20. package/build/lib/hydration.js.map +1 -1
  21. package/build/lib/hydration.legacy.cjs +92 -0
  22. package/build/lib/hydration.legacy.cjs.map +1 -0
  23. package/build/lib/{hydration.esm.js → hydration.legacy.js} +6 -19
  24. package/build/lib/hydration.legacy.js.map +1 -0
  25. package/build/lib/index.cjs +40 -0
  26. package/build/lib/index.cjs.map +1 -0
  27. package/build/lib/index.d.ts +5 -2
  28. package/build/lib/index.d.ts.map +1 -0
  29. package/build/lib/index.js +13 -39
  30. package/build/lib/index.js.map +1 -1
  31. package/build/lib/index.legacy.cjs +40 -0
  32. package/build/lib/index.legacy.cjs.map +1 -0
  33. package/build/lib/index.legacy.js +14 -0
  34. package/build/lib/index.legacy.js.map +1 -0
  35. package/build/lib/{infiniteQueryBehavior.mjs → infiniteQueryBehavior.cjs} +15 -18
  36. package/build/lib/infiniteQueryBehavior.cjs.map +1 -0
  37. package/build/lib/infiniteQueryBehavior.d.ts +2 -1
  38. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  39. package/build/lib/infiniteQueryBehavior.js +14 -26
  40. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  41. package/build/lib/infiniteQueryBehavior.legacy.cjs +125 -0
  42. package/build/lib/infiniteQueryBehavior.legacy.cjs.map +1 -0
  43. package/build/lib/{infiniteQueryBehavior.esm.js → infiniteQueryBehavior.legacy.js} +10 -16
  44. package/build/lib/infiniteQueryBehavior.legacy.js.map +1 -0
  45. package/build/lib/{infiniteQueryObserver.mjs → infiniteQueryObserver.cjs} +11 -9
  46. package/build/lib/{infiniteQueryObserver.mjs.map → infiniteQueryObserver.cjs.map} +1 -1
  47. package/build/lib/infiniteQueryObserver.d.ts +2 -1
  48. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  49. package/build/lib/infiniteQueryObserver.js +10 -13
  50. package/build/lib/infiniteQueryObserver.js.map +1 -1
  51. package/build/lib/infiniteQueryObserver.legacy.cjs +78 -0
  52. package/build/lib/infiniteQueryObserver.legacy.cjs.map +1 -0
  53. package/build/lib/{infiniteQueryObserver.esm.js → infiniteQueryObserver.legacy.js} +3 -3
  54. package/build/lib/infiniteQueryObserver.legacy.js.map +1 -0
  55. package/build/lib/{mutation.mjs → mutation.cjs} +13 -10
  56. package/build/lib/mutation.cjs.map +1 -0
  57. package/build/lib/mutation.d.ts +2 -1
  58. package/build/lib/mutation.d.ts.map +1 -0
  59. package/build/lib/mutation.js +107 -135
  60. package/build/lib/mutation.js.map +1 -1
  61. package/build/lib/mutation.legacy.cjs +262 -0
  62. package/build/lib/mutation.legacy.cjs.map +1 -0
  63. package/build/lib/{mutation.esm.js → mutation.legacy.js} +6 -6
  64. package/build/lib/mutation.legacy.js.map +1 -0
  65. package/build/lib/{mutationCache.mjs → mutationCache.cjs} +21 -18
  66. package/build/lib/mutationCache.cjs.map +1 -0
  67. package/build/lib/mutationCache.d.ts +3 -2
  68. package/build/lib/mutationCache.d.ts.map +1 -0
  69. package/build/lib/mutationCache.js +33 -47
  70. package/build/lib/mutationCache.js.map +1 -1
  71. package/build/lib/mutationCache.legacy.cjs +98 -0
  72. package/build/lib/mutationCache.legacy.cjs.map +1 -0
  73. package/build/lib/{mutationCache.esm.js → mutationCache.legacy.js} +11 -10
  74. package/build/lib/mutationCache.legacy.js.map +1 -0
  75. package/build/lib/{mutationObserver.mjs → mutationObserver.cjs} +13 -11
  76. package/build/lib/mutationObserver.cjs.map +1 -0
  77. package/build/lib/mutationObserver.d.ts +2 -1
  78. package/build/lib/mutationObserver.d.ts.map +1 -0
  79. package/build/lib/mutationObserver.js +59 -91
  80. package/build/lib/mutationObserver.js.map +1 -1
  81. package/build/lib/mutationObserver.legacy.cjs +128 -0
  82. package/build/lib/mutationObserver.legacy.cjs.map +1 -0
  83. package/build/lib/{mutationObserver.esm.js → mutationObserver.legacy.js} +7 -7
  84. package/build/lib/mutationObserver.legacy.js.map +1 -0
  85. package/build/lib/{notifyManager.mjs → notifyManager.cjs} +8 -5
  86. package/build/lib/notifyManager.cjs.map +1 -0
  87. package/build/lib/notifyManager.d.ts +7 -5
  88. package/build/lib/notifyManager.d.ts.map +1 -0
  89. package/build/lib/notifyManager.js +4 -7
  90. package/build/lib/notifyManager.js.map +1 -1
  91. package/build/lib/notifyManager.legacy.cjs +92 -0
  92. package/build/lib/notifyManager.legacy.cjs.map +1 -0
  93. package/build/lib/{notifyManager.esm.js → notifyManager.legacy.js} +2 -2
  94. package/build/lib/notifyManager.legacy.js.map +1 -0
  95. package/build/lib/{onlineManager.mjs → onlineManager.cjs} +19 -12
  96. package/build/lib/onlineManager.cjs.map +1 -0
  97. package/build/lib/onlineManager.d.ts +2 -1
  98. package/build/lib/onlineManager.d.ts.map +1 -0
  99. package/build/lib/onlineManager.js +28 -42
  100. package/build/lib/onlineManager.js.map +1 -1
  101. package/build/lib/onlineManager.legacy.cjs +95 -0
  102. package/build/lib/onlineManager.legacy.cjs.map +1 -0
  103. package/build/lib/{onlineManager.esm.js → onlineManager.legacy.js} +14 -10
  104. package/build/lib/onlineManager.legacy.js.map +1 -0
  105. package/build/lib/{queriesObserver.mjs → queriesObserver.cjs} +51 -26
  106. package/build/lib/queriesObserver.cjs.map +1 -0
  107. package/build/lib/queriesObserver.d.ts +14 -6
  108. package/build/lib/queriesObserver.d.ts.map +1 -0
  109. package/build/lib/queriesObserver.js +99 -107
  110. package/build/lib/queriesObserver.js.map +1 -1
  111. package/build/lib/queriesObserver.legacy.cjs +207 -0
  112. package/build/lib/queriesObserver.legacy.cjs.map +1 -0
  113. package/build/lib/{queriesObserver.esm.js → queriesObserver.legacy.js} +62 -22
  114. package/build/lib/queriesObserver.legacy.js.map +1 -0
  115. package/build/lib/{query.mjs → query.cjs} +23 -21
  116. package/build/lib/query.cjs.map +1 -0
  117. package/build/lib/query.d.ts +3 -2
  118. package/build/lib/query.d.ts.map +1 -0
  119. package/build/lib/query.js +174 -225
  120. package/build/lib/query.js.map +1 -1
  121. package/build/lib/query.legacy.cjs +471 -0
  122. package/build/lib/query.legacy.cjs.map +1 -0
  123. package/build/lib/{query.esm.js → query.legacy.js} +11 -11
  124. package/build/lib/query.legacy.js.map +1 -0
  125. package/build/lib/{queryCache.mjs → queryCache.cjs} +28 -23
  126. package/build/lib/queryCache.cjs.map +1 -0
  127. package/build/lib/queryCache.d.ts +3 -3
  128. package/build/lib/queryCache.d.ts.map +1 -0
  129. package/build/lib/queryCache.js +31 -37
  130. package/build/lib/queryCache.js.map +1 -1
  131. package/build/lib/queryCache.legacy.cjs +111 -0
  132. package/build/lib/queryCache.legacy.cjs.map +1 -0
  133. package/build/lib/{queryCache.esm.js → queryCache.legacy.js} +13 -12
  134. package/build/lib/queryCache.legacy.js.map +1 -0
  135. package/build/lib/{queryClient.mjs → queryClient.cjs} +50 -42
  136. package/build/lib/queryClient.cjs.map +1 -0
  137. package/build/lib/queryClient.d.ts +2 -2
  138. package/build/lib/queryClient.d.ts.map +1 -0
  139. package/build/lib/queryClient.js +98 -134
  140. package/build/lib/queryClient.js.map +1 -1
  141. package/build/lib/queryClient.legacy.cjs +322 -0
  142. package/build/lib/queryClient.legacy.cjs.map +1 -0
  143. package/build/lib/{queryClient.esm.js → queryClient.legacy.js} +29 -26
  144. package/build/lib/queryClient.legacy.js.map +1 -0
  145. package/build/lib/{queryObserver.mjs → queryObserver.cjs} +76 -51
  146. package/build/lib/queryObserver.cjs.map +1 -0
  147. package/build/lib/queryObserver.d.ts +6 -7
  148. package/build/lib/queryObserver.d.ts.map +1 -0
  149. package/build/lib/queryObserver.js +244 -324
  150. package/build/lib/queryObserver.js.map +1 -1
  151. package/build/lib/queryObserver.legacy.cjs +561 -0
  152. package/build/lib/queryObserver.legacy.cjs.map +1 -0
  153. package/build/lib/{queryObserver.esm.js → queryObserver.legacy.js} +107 -89
  154. package/build/lib/queryObserver.legacy.js.map +1 -0
  155. package/build/lib/{removable.mjs → removable.cjs} +7 -5
  156. package/build/lib/{removable.mjs.map → removable.cjs.map} +1 -1
  157. package/build/lib/removable.d.ts +1 -0
  158. package/build/lib/removable.d.ts.map +1 -0
  159. package/build/lib/removable.js +9 -18
  160. package/build/lib/removable.js.map +1 -1
  161. package/build/lib/removable.legacy.cjs +38 -0
  162. package/build/lib/removable.legacy.cjs.map +1 -0
  163. package/build/lib/{removable.esm.js → removable.legacy.js} +3 -3
  164. package/build/lib/removable.legacy.js.map +1 -0
  165. package/build/lib/{retryer.mjs → retryer.cjs} +15 -8
  166. package/build/lib/{retryer.mjs.map → retryer.cjs.map} +1 -1
  167. package/build/lib/retryer.d.ts +5 -4
  168. package/build/lib/retryer.d.ts.map +1 -0
  169. package/build/lib/retryer.js +21 -25
  170. package/build/lib/retryer.js.map +1 -1
  171. package/build/lib/retryer.legacy.cjs +158 -0
  172. package/build/lib/retryer.legacy.cjs.map +1 -0
  173. package/build/lib/{retryer.esm.js → retryer.legacy.js} +6 -4
  174. package/build/lib/retryer.legacy.js.map +1 -0
  175. package/build/lib/{subscribable.esm.js → subscribable.cjs} +8 -6
  176. package/build/lib/subscribable.cjs.map +1 -0
  177. package/build/lib/subscribable.d.ts +3 -2
  178. package/build/lib/subscribable.d.ts.map +1 -0
  179. package/build/lib/subscribable.js +5 -7
  180. package/build/lib/subscribable.js.map +1 -1
  181. package/build/lib/subscribable.legacy.cjs +28 -0
  182. package/build/lib/subscribable.legacy.cjs.map +1 -0
  183. package/build/lib/{subscribable.mjs → subscribable.legacy.js} +5 -5
  184. package/build/lib/subscribable.legacy.js.map +1 -0
  185. package/build/lib/tests/focusManager.test.d.ts +1 -0
  186. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  187. package/build/lib/tests/hydration.test.d.ts +1 -0
  188. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  189. package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
  190. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  191. package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
  192. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  193. package/build/lib/tests/mutationCache.test.d.ts +1 -0
  194. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  195. package/build/lib/tests/mutationObserver.test.d.ts +1 -0
  196. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  197. package/build/lib/tests/mutations.test.d.ts +1 -0
  198. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  199. package/build/lib/tests/notifyManager.test.d.ts +1 -0
  200. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  201. package/build/lib/tests/onlineManager.test.d.ts +1 -0
  202. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  203. package/build/lib/tests/queriesObserver.test.d.ts +1 -0
  204. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  205. package/build/lib/tests/query.test.d.ts +1 -0
  206. package/build/lib/tests/query.test.d.ts.map +1 -0
  207. package/build/lib/tests/queryCache.test.d.ts +1 -0
  208. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  209. package/build/lib/tests/queryClient.test.d.ts +1 -0
  210. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  211. package/build/lib/tests/queryObserver.test.d.ts +1 -0
  212. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  213. package/build/lib/tests/utils.d.ts +1 -0
  214. package/build/lib/tests/utils.d.ts.map +1 -0
  215. package/build/lib/tests/utils.test.d.ts +1 -0
  216. package/build/lib/tests/utils.test.d.ts.map +1 -0
  217. package/build/lib/types.d.ts +42 -48
  218. package/build/lib/types.d.ts.map +1 -0
  219. package/build/lib/{utils.mjs → utils.cjs} +23 -2
  220. package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
  221. package/build/lib/utils.d.ts +4 -3
  222. package/build/lib/utils.d.ts.map +1 -0
  223. package/build/lib/utils.js +2 -23
  224. package/build/lib/utils.js.map +1 -1
  225. package/build/lib/utils.legacy.cjs +248 -0
  226. package/build/lib/utils.legacy.cjs.map +1 -0
  227. package/build/lib/{utils.esm.js → utils.legacy.js} +1 -1
  228. package/build/lib/utils.legacy.js.map +1 -0
  229. package/package.json +13 -9
  230. package/src/focusManager.ts +3 -3
  231. package/src/hydration.ts +18 -37
  232. package/src/index.ts +3 -3
  233. package/src/infiniteQueryBehavior.ts +16 -18
  234. package/src/mutation.ts +1 -1
  235. package/src/mutationCache.ts +4 -4
  236. package/src/mutationObserver.ts +1 -1
  237. package/src/notifyManager.ts +7 -3
  238. package/src/onlineManager.ts +11 -6
  239. package/src/queriesObserver.ts +75 -25
  240. package/src/query.ts +7 -5
  241. package/src/queryCache.ts +6 -9
  242. package/src/queryClient.ts +23 -21
  243. package/src/queryObserver.ts +93 -56
  244. package/src/subscribable.ts +5 -5
  245. package/src/tests/focusManager.test.tsx +21 -14
  246. package/src/tests/hydration.test.tsx +7 -3
  247. package/src/tests/infiniteQueryBehavior.test.tsx +5 -2
  248. package/src/tests/notifyManager.test.tsx +15 -0
  249. package/src/tests/onlineManager.test.tsx +21 -0
  250. package/src/tests/query.test.tsx +4 -2
  251. package/src/tests/queryCache.test.tsx +1 -19
  252. package/src/tests/queryClient.test.tsx +79 -3
  253. package/src/tests/queryObserver.test.tsx +121 -0
  254. package/src/types.ts +31 -30
  255. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
  256. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  257. package/build/lib/focusManager.esm.js.map +0 -1
  258. package/build/lib/focusManager.mjs.map +0 -1
  259. package/build/lib/hydration.esm.js.map +0 -1
  260. package/build/lib/hydration.mjs.map +0 -1
  261. package/build/lib/index.esm.js +0 -14
  262. package/build/lib/index.esm.js.map +0 -1
  263. package/build/lib/index.mjs +0 -14
  264. package/build/lib/index.mjs.map +0 -1
  265. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  266. package/build/lib/infiniteQueryBehavior.mjs.map +0 -1
  267. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  268. package/build/lib/mutation.esm.js.map +0 -1
  269. package/build/lib/mutation.mjs.map +0 -1
  270. package/build/lib/mutationCache.esm.js.map +0 -1
  271. package/build/lib/mutationCache.mjs.map +0 -1
  272. package/build/lib/mutationObserver.esm.js.map +0 -1
  273. package/build/lib/mutationObserver.mjs.map +0 -1
  274. package/build/lib/notifyManager.esm.js.map +0 -1
  275. package/build/lib/notifyManager.mjs.map +0 -1
  276. package/build/lib/onlineManager.esm.js.map +0 -1
  277. package/build/lib/onlineManager.mjs.map +0 -1
  278. package/build/lib/queriesObserver.esm.js.map +0 -1
  279. package/build/lib/queriesObserver.mjs.map +0 -1
  280. package/build/lib/query.esm.js.map +0 -1
  281. package/build/lib/query.mjs.map +0 -1
  282. package/build/lib/queryCache.esm.js.map +0 -1
  283. package/build/lib/queryCache.mjs.map +0 -1
  284. package/build/lib/queryClient.esm.js.map +0 -1
  285. package/build/lib/queryClient.mjs.map +0 -1
  286. package/build/lib/queryObserver.esm.js.map +0 -1
  287. package/build/lib/queryObserver.mjs.map +0 -1
  288. package/build/lib/removable.esm.js.map +0 -1
  289. package/build/lib/retryer.esm.js.map +0 -1
  290. package/build/lib/subscribable.esm.js.map +0 -1
  291. package/build/lib/subscribable.mjs.map +0 -1
  292. package/build/lib/utils.esm.js.map +0 -1
  293. package/build/umd/index.development.js +0 -2683
  294. package/build/umd/index.development.js.map +0 -1
  295. package/build/umd/index.production.js +0 -2
  296. package/build/umd/index.production.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryObserver.legacy.cjs","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 const result = this.createResult(query, options)\n\n if (shouldAssignObserverCurrentProperties(this, result)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.#currentResult = result\n this.#currentResultOptions = this.options\n this.#currentResultState = this.#currentQuery.state\n }\n return result\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\n// this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\nfunction shouldAssignObserverCurrentProperties<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n optimisticResult: QueryObserverResult<TData, TError>,\n) {\n // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n if (observer.getCurrentResult() !== optimisticResult) {\n return true\n }\n\n // basically, just keep previous properties if nothing changed\n return false\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","_updateQuery","_notify","QueryObserver","Subscribable","constructor","client","options","Object","defineProperty","value","_notify2","_updateQuery2","_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","updateResult","staleTime","nextRefetchInterval","getOptimisticResult","build","result","createResult","shouldAssignObserverCurrentProperties","state","getCurrentResult","trackResult","trackedResult","keys","forEach","key","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","_fetchOptions$cancelR","cancelRefetch","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","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","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","throwOnError","some","typedKey","changed","has","onQueryUpdate","promise","catch","noop","isServer","isValidTimeout","time","timeUntilStale","timeout","setTimeout","_ref","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","suspense","isStaleByTime","optimisticResult"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { classPrivateFieldLooseBase as _classPrivateFieldLooseBase, classPrivateFieldLooseKey as _classPrivateFieldLooseKey } from './_virtual/_rollupPluginBabelHelpers.esm.js';
2
- import { shallowEqualObjects, replaceData, noop, isServer, isValidTimeout, timeUntilStale } from './utils.esm.js';
3
- import { notifyManager } from './notifyManager.esm.js';
4
- import { focusManager } from './focusManager.esm.js';
5
- import { Subscribable } from './subscribable.esm.js';
6
- import { canFetch, isCancelledError } from './retryer.esm.js';
1
+ import { classPrivateFieldLooseBase as _classPrivateFieldLooseBase, classPrivateFieldLooseKey as _classPrivateFieldLooseKey } from './_virtual/_rollupPluginBabelHelpers.legacy.js';
2
+ import { shallowEqualObjects, replaceData, noop, isServer, isValidTimeout, timeUntilStale } from './utils.legacy.js';
3
+ import { notifyManager } from './notifyManager.legacy.js';
4
+ import { focusManager } from './focusManager.legacy.js';
5
+ import { Subscribable } from './subscribable.legacy.js';
6
+ import { canFetch } from './retryer.legacy.js';
7
7
 
8
8
  var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
9
9
  var _currentQuery = /*#__PURE__*/_classPrivateFieldLooseKey("currentQuery");
@@ -11,10 +11,10 @@ var _currentQueryInitialState = /*#__PURE__*/_classPrivateFieldLooseKey("current
11
11
  var _currentResult = /*#__PURE__*/_classPrivateFieldLooseKey("currentResult");
12
12
  var _currentResultState = /*#__PURE__*/_classPrivateFieldLooseKey("currentResultState");
13
13
  var _currentResultOptions = /*#__PURE__*/_classPrivateFieldLooseKey("currentResultOptions");
14
- var _previousQueryResult = /*#__PURE__*/_classPrivateFieldLooseKey("previousQueryResult");
15
14
  var _selectError = /*#__PURE__*/_classPrivateFieldLooseKey("selectError");
16
15
  var _selectFn = /*#__PURE__*/_classPrivateFieldLooseKey("selectFn");
17
16
  var _selectResult = /*#__PURE__*/_classPrivateFieldLooseKey("selectResult");
17
+ var _lastQueryWithDefinedData = /*#__PURE__*/_classPrivateFieldLooseKey("lastQueryWithDefinedData");
18
18
  var _staleTimeoutId = /*#__PURE__*/_classPrivateFieldLooseKey("staleTimeoutId");
19
19
  var _refetchIntervalId = /*#__PURE__*/_classPrivateFieldLooseKey("refetchIntervalId");
20
20
  var _currentRefetchInterval = /*#__PURE__*/_classPrivateFieldLooseKey("currentRefetchInterval");
@@ -26,7 +26,6 @@ var _updateRefetchInterval = /*#__PURE__*/_classPrivateFieldLooseKey("updateRefe
26
26
  var _updateTimers = /*#__PURE__*/_classPrivateFieldLooseKey("updateTimers");
27
27
  var _clearStaleTimeout = /*#__PURE__*/_classPrivateFieldLooseKey("clearStaleTimeout");
28
28
  var _clearRefetchInterval = /*#__PURE__*/_classPrivateFieldLooseKey("clearRefetchInterval");
29
- var _updateResult = /*#__PURE__*/_classPrivateFieldLooseKey("updateResult");
30
29
  var _updateQuery = /*#__PURE__*/_classPrivateFieldLooseKey("updateQuery");
31
30
  var _notify = /*#__PURE__*/_classPrivateFieldLooseKey("notify");
32
31
  class QueryObserver extends Subscribable {
@@ -38,9 +37,6 @@ class QueryObserver extends Subscribable {
38
37
  Object.defineProperty(this, _updateQuery, {
39
38
  value: _updateQuery2
40
39
  });
41
- Object.defineProperty(this, _updateResult, {
42
- value: _updateResult2
43
- });
44
40
  Object.defineProperty(this, _clearRefetchInterval, {
45
41
  value: _clearRefetchInterval2
46
42
  });
@@ -86,10 +82,6 @@ class QueryObserver extends Subscribable {
86
82
  writable: true,
87
83
  value: void 0
88
84
  });
89
- Object.defineProperty(this, _previousQueryResult, {
90
- writable: true,
91
- value: void 0
92
- });
93
85
  Object.defineProperty(this, _selectError, {
94
86
  writable: true,
95
87
  value: void 0
@@ -102,6 +94,12 @@ class QueryObserver extends Subscribable {
102
94
  writable: true,
103
95
  value: void 0
104
96
  });
97
+ // This property keeps track of the last query with defined data.
98
+ // It will be used to pass the previous data and query to the placeholder function between renders.
99
+ Object.defineProperty(this, _lastQueryWithDefinedData, {
100
+ writable: true,
101
+ value: void 0
102
+ });
105
103
  Object.defineProperty(this, _staleTimeoutId, {
106
104
  writable: true,
107
105
  value: void 0
@@ -128,7 +126,7 @@ class QueryObserver extends Subscribable {
128
126
  this.refetch = this.refetch.bind(this);
129
127
  }
130
128
  onSubscribe() {
131
- if (this.listeners.length === 1) {
129
+ if (this.listeners.size === 1) {
132
130
  _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery].addObserver(this);
133
131
  if (shouldFetchOnMount(_classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery], this.options)) {
134
132
  _classPrivateFieldLooseBase(this, _executeFetch)[_executeFetch]();
@@ -137,7 +135,7 @@ class QueryObserver extends Subscribable {
137
135
  }
138
136
  }
139
137
  onUnsubscribe() {
140
- if (!this.listeners.length) {
138
+ if (!this.hasListeners()) {
141
139
  this.destroy();
142
140
  }
143
141
  }
@@ -148,7 +146,7 @@ class QueryObserver extends Subscribable {
148
146
  return shouldFetchOn(_classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery], this.options, this.options.refetchOnWindowFocus);
149
147
  }
150
148
  destroy() {
151
- this.listeners = [];
149
+ this.listeners = new Set();
152
150
  _classPrivateFieldLooseBase(this, _clearStaleTimeout)[_clearStaleTimeout]();
153
151
  _classPrivateFieldLooseBase(this, _clearRefetchInterval)[_clearRefetchInterval]();
154
152
  _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery].removeObserver(this);
@@ -181,7 +179,7 @@ class QueryObserver extends Subscribable {
181
179
  }
182
180
 
183
181
  // Update result
184
- _classPrivateFieldLooseBase(this, _updateResult)[_updateResult](notifyOptions);
182
+ this.updateResult(notifyOptions);
185
183
 
186
184
  // Update stale interval if needed
187
185
  if (mounted && (_classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery] !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {
@@ -196,7 +194,29 @@ class QueryObserver extends Subscribable {
196
194
  }
197
195
  getOptimisticResult(options) {
198
196
  const query = _classPrivateFieldLooseBase(this, _client)[_client].getQueryCache().build(_classPrivateFieldLooseBase(this, _client)[_client], options);
199
- return this.createResult(query, options);
197
+ const result = this.createResult(query, options);
198
+ if (shouldAssignObserverCurrentProperties(this, result)) {
199
+ // this assigns the optimistic result to the current Observer
200
+ // because if the query function changes, useQuery will be performing
201
+ // an effect where it would fetch again.
202
+ // When the fetch finishes, we perform a deep data cloning in order
203
+ // to reuse objects references. This deep data clone is performed against
204
+ // the `observer.currentResult.data` property
205
+ // When QueryKey changes, we refresh the query and get new `optimistic`
206
+ // result, while we leave the `observer.currentResult`, so when new data
207
+ // arrives, it finds the old `observer.currentResult` which is related
208
+ // to the old QueryKey. Which means that currentResult and selectData are
209
+ // out of sync already.
210
+ // To solve this, we move the cursor of the currentResult everytime
211
+ // an observer reads an optimistic value.
212
+
213
+ // When keeping the previous data, the result doesn't change until new
214
+ // data arrives.
215
+ _classPrivateFieldLooseBase(this, _currentResult)[_currentResult] = result;
216
+ _classPrivateFieldLooseBase(this, _currentResultOptions)[_currentResultOptions] = this.options;
217
+ _classPrivateFieldLooseBase(this, _currentResultState)[_currentResultState] = _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery].state;
218
+ }
219
+ return result;
200
220
  }
201
221
  getCurrentResult() {
202
222
  return _classPrivateFieldLooseBase(this, _currentResult)[_currentResult];
@@ -237,7 +257,7 @@ class QueryObserver extends Subscribable {
237
257
  ...fetchOptions,
238
258
  cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true
239
259
  }).then(() => {
240
- _classPrivateFieldLooseBase(this, _updateResult)[_updateResult]();
260
+ this.updateResult();
241
261
  return _classPrivateFieldLooseBase(this, _currentResult)[_currentResult];
242
262
  });
243
263
  }
@@ -249,7 +269,6 @@ class QueryObserver extends Subscribable {
249
269
  const prevResultOptions = _classPrivateFieldLooseBase(this, _currentResultOptions)[_currentResultOptions];
250
270
  const queryChange = query !== prevQuery;
251
271
  const queryInitialState = queryChange ? query.state : _classPrivateFieldLooseBase(this, _currentQueryInitialState)[_currentQueryInitialState];
252
- const prevQueryResult = queryChange ? _classPrivateFieldLooseBase(this, _currentResult)[_currentResult] : _classPrivateFieldLooseBase(this, _previousQueryResult)[_previousQueryResult];
253
272
  const {
254
273
  state
255
274
  } = query;
@@ -308,7 +327,8 @@ class QueryObserver extends Subscribable {
308
327
  if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {
309
328
  placeholderData = prevResult.data;
310
329
  } else {
311
- placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(prevQueryResult == null ? void 0 : prevQueryResult.data) : options.placeholderData;
330
+ var _classPrivateFieldLoo;
331
+ placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData((_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _lastQueryWithDefinedData)[_lastQueryWithDefinedData]) == null ? void 0 : _classPrivateFieldLoo.state.data, _classPrivateFieldLooseBase(this, _lastQueryWithDefinedData)[_lastQueryWithDefinedData]) : options.placeholderData;
312
332
  if (options.select && typeof placeholderData !== 'undefined') {
313
333
  try {
314
334
  placeholderData = options.select(placeholderData);
@@ -362,14 +382,53 @@ class QueryObserver extends Subscribable {
362
382
  };
363
383
  return result;
364
384
  }
365
- onQueryUpdate(action) {
366
- const notifyOptions = {};
367
- if (action.type === 'success') {
368
- notifyOptions.onSuccess = !action.manual;
369
- } else if (action.type === 'error' && !isCancelledError(action.error)) {
370
- notifyOptions.onError = true;
385
+ updateResult(notifyOptions) {
386
+ const prevResult = _classPrivateFieldLooseBase(this, _currentResult)[_currentResult];
387
+ const nextResult = this.createResult(_classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery], this.options);
388
+ _classPrivateFieldLooseBase(this, _currentResultState)[_currentResultState] = _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery].state;
389
+ _classPrivateFieldLooseBase(this, _currentResultOptions)[_currentResultOptions] = this.options;
390
+
391
+ // Only notify and update result if something has changed
392
+ if (shallowEqualObjects(nextResult, prevResult)) {
393
+ return;
394
+ }
395
+ if (_classPrivateFieldLooseBase(this, _currentResultState)[_currentResultState].data !== undefined) {
396
+ _classPrivateFieldLooseBase(this, _lastQueryWithDefinedData)[_lastQueryWithDefinedData] = _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery];
397
+ }
398
+ _classPrivateFieldLooseBase(this, _currentResult)[_currentResult] = nextResult;
399
+
400
+ // Determine which callbacks to trigger
401
+ const defaultNotifyOptions = {};
402
+ const shouldNotifyListeners = () => {
403
+ if (!prevResult) {
404
+ return true;
405
+ }
406
+ const {
407
+ notifyOnChangeProps
408
+ } = this.options;
409
+ if (notifyOnChangeProps === 'all' || !notifyOnChangeProps && !_classPrivateFieldLooseBase(this, _trackedProps)[_trackedProps].size) {
410
+ return true;
411
+ }
412
+ const includedProps = new Set(notifyOnChangeProps != null ? notifyOnChangeProps : _classPrivateFieldLooseBase(this, _trackedProps)[_trackedProps]);
413
+ if (this.options.throwOnError) {
414
+ includedProps.add('error');
415
+ }
416
+ return Object.keys(_classPrivateFieldLooseBase(this, _currentResult)[_currentResult]).some(key => {
417
+ const typedKey = key;
418
+ const changed = _classPrivateFieldLooseBase(this, _currentResult)[_currentResult][typedKey] !== prevResult[typedKey];
419
+ return changed && includedProps.has(typedKey);
420
+ });
421
+ };
422
+ if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {
423
+ defaultNotifyOptions.listeners = true;
371
424
  }
372
- _classPrivateFieldLooseBase(this, _updateResult)[_updateResult](notifyOptions);
425
+ _classPrivateFieldLooseBase(this, _notify)[_notify]({
426
+ ...defaultNotifyOptions,
427
+ ...notifyOptions
428
+ });
429
+ }
430
+ onQueryUpdate() {
431
+ this.updateResult();
373
432
  if (this.hasListeners()) {
374
433
  _classPrivateFieldLooseBase(this, _updateTimers)[_updateTimers]();
375
434
  }
@@ -398,13 +457,13 @@ function _updateStaleTimeout2() {
398
457
  const timeout = time + 1;
399
458
  _classPrivateFieldLooseBase(this, _staleTimeoutId)[_staleTimeoutId] = setTimeout(() => {
400
459
  if (!_classPrivateFieldLooseBase(this, _currentResult)[_currentResult].isStale) {
401
- _classPrivateFieldLooseBase(this, _updateResult)[_updateResult]();
460
+ this.updateResult();
402
461
  }
403
462
  }, timeout);
404
463
  }
405
464
  function _computeRefetchInterval2() {
406
- var _this$options$refetch;
407
- return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(_classPrivateFieldLooseBase(this, _currentResult)[_currentResult].data, _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery]) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;
465
+ var _ref;
466
+ return (_ref = typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(_classPrivateFieldLooseBase(this, _currentResult)[_currentResult].data, _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery]) : this.options.refetchInterval) != null ? _ref : false;
408
467
  }
409
468
  function _updateRefetchInterval2(nextInterval) {
410
469
  _classPrivateFieldLooseBase(this, _clearRefetchInterval)[_clearRefetchInterval]();
@@ -434,48 +493,6 @@ function _clearRefetchInterval2() {
434
493
  _classPrivateFieldLooseBase(this, _refetchIntervalId)[_refetchIntervalId] = undefined;
435
494
  }
436
495
  }
437
- function _updateResult2(notifyOptions) {
438
- const prevResult = _classPrivateFieldLooseBase(this, _currentResult)[_currentResult];
439
- const nextResult = this.createResult(_classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery], this.options);
440
- _classPrivateFieldLooseBase(this, _currentResultState)[_currentResultState] = _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery].state;
441
- _classPrivateFieldLooseBase(this, _currentResultOptions)[_currentResultOptions] = this.options;
442
-
443
- // Only notify and update result if something has changed
444
- if (shallowEqualObjects(nextResult, prevResult)) {
445
- return;
446
- }
447
- _classPrivateFieldLooseBase(this, _currentResult)[_currentResult] = nextResult;
448
-
449
- // Determine which callbacks to trigger
450
- const defaultNotifyOptions = {};
451
- const shouldNotifyListeners = () => {
452
- if (!prevResult) {
453
- return true;
454
- }
455
- const {
456
- notifyOnChangeProps
457
- } = this.options;
458
- if (notifyOnChangeProps === 'all' || !notifyOnChangeProps && !_classPrivateFieldLooseBase(this, _trackedProps)[_trackedProps].size) {
459
- return true;
460
- }
461
- const includedProps = new Set(notifyOnChangeProps != null ? notifyOnChangeProps : _classPrivateFieldLooseBase(this, _trackedProps)[_trackedProps]);
462
- if (this.options.throwErrors) {
463
- includedProps.add('error');
464
- }
465
- return Object.keys(_classPrivateFieldLooseBase(this, _currentResult)[_currentResult]).some(key => {
466
- const typedKey = key;
467
- const changed = _classPrivateFieldLooseBase(this, _currentResult)[_currentResult][typedKey] !== prevResult[typedKey];
468
- return changed && includedProps.has(typedKey);
469
- });
470
- };
471
- if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {
472
- defaultNotifyOptions.listeners = true;
473
- }
474
- _classPrivateFieldLooseBase(this, _notify)[_notify]({
475
- ...defaultNotifyOptions,
476
- ...notifyOptions
477
- });
478
- }
479
496
  function _updateQuery2() {
480
497
  const query = _classPrivateFieldLooseBase(this, _client)[_client].getQueryCache().build(_classPrivateFieldLooseBase(this, _client)[_client], this.options);
481
498
  if (query === _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery]) {
@@ -484,7 +501,6 @@ function _updateQuery2() {
484
501
  const prevQuery = _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery];
485
502
  _classPrivateFieldLooseBase(this, _currentQuery)[_currentQuery] = query;
486
503
  _classPrivateFieldLooseBase(this, _currentQueryInitialState)[_currentQueryInitialState] = query.state;
487
- _classPrivateFieldLooseBase(this, _previousQueryResult)[_previousQueryResult] = _classPrivateFieldLooseBase(this, _currentResult)[_currentResult];
488
504
  if (this.hasListeners()) {
489
505
  prevQuery == null ? void 0 : prevQuery.removeObserver(this);
490
506
  query.addObserver(this);
@@ -492,18 +508,7 @@ function _updateQuery2() {
492
508
  }
493
509
  function _notify2(notifyOptions) {
494
510
  notifyManager.batch(() => {
495
- // First trigger the configuration callbacks
496
- if (notifyOptions.onSuccess) {
497
- var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;
498
- (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].data);
499
- (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].data, null);
500
- } else if (notifyOptions.onError) {
501
- var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;
502
- (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].error);
503
- (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].error);
504
- }
505
-
506
- // Then trigger the listeners
511
+ // First, trigger the listeners
507
512
  if (notifyOptions.listeners) {
508
513
  this.listeners.forEach(listener => {
509
514
  listener(_classPrivateFieldLooseBase(this, _currentResult)[_currentResult]);
@@ -537,5 +542,18 @@ function isStale(query, options) {
537
542
  return query.isStaleByTime(options.staleTime);
538
543
  }
539
544
 
545
+ // this function would decide if we will update the observer's 'current'
546
+ // properties after an optimistic reading via getOptimisticResult
547
+ function shouldAssignObserverCurrentProperties(observer, optimisticResult) {
548
+ // if the newly created result isn't what the observer is holding as current,
549
+ // then we'll need to update the properties as well
550
+ if (observer.getCurrentResult() !== optimisticResult) {
551
+ return true;
552
+ }
553
+
554
+ // basically, just keep previous properties if nothing changed
555
+ return false;
556
+ }
557
+
540
558
  export { QueryObserver };
541
- //# sourceMappingURL=queryObserver.esm.js.map
559
+ //# sourceMappingURL=queryObserver.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryObserver.legacy.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 const result = this.createResult(query, options)\n\n if (shouldAssignObserverCurrentProperties(this, result)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.#currentResult = result\n this.#currentResultOptions = this.options\n this.#currentResultState = this.#currentQuery.state\n }\n return result\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\n// this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\nfunction shouldAssignObserverCurrentProperties<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n optimisticResult: QueryObserverResult<TData, TError>,\n) {\n // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n if (observer.getCurrentResult() !== optimisticResult) {\n return true\n }\n\n // basically, just keep previous properties if nothing changed\n return false\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","_updateQuery","_notify","QueryObserver","Subscribable","constructor","client","options","Object","defineProperty","value","_notify2","_updateQuery2","_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","updateResult","staleTime","nextRefetchInterval","getOptimisticResult","build","result","createResult","shouldAssignObserverCurrentProperties","state","getCurrentResult","trackResult","trackedResult","keys","forEach","key","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","_fetchOptions$cancelR","cancelRefetch","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","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","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","throwOnError","some","typedKey","changed","has","onQueryUpdate","promise","catch","noop","isServer","isValidTimeout","time","timeUntilStale","timeout","setTimeout","_ref","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","notifyManager","batch","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","suspense","isStaleByTime","optimisticResult"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { isValidTimeout, isServer } from './utils.mjs';
1
+ 'use strict';
2
+
3
+ var utils = require('./utils.cjs');
2
4
 
3
5
  class Removable {
4
6
  #gcTimeout;
@@ -7,7 +9,7 @@ class Removable {
7
9
  }
8
10
  scheduleGc() {
9
11
  this.clearGcTimeout();
10
- if (isValidTimeout(this.gcTime)) {
12
+ if (utils.isValidTimeout(this.gcTime)) {
11
13
  this.#gcTimeout = setTimeout(() => {
12
14
  this.optionalRemove();
13
15
  }, this.gcTime);
@@ -15,7 +17,7 @@ class Removable {
15
17
  }
16
18
  updateGcTime(newGcTime) {
17
19
  // Default to 5 minutes (Infinity for server-side) if no gcTime is set
18
- this.gcTime = Math.max(this.gcTime || 0, newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000));
20
+ this.gcTime = Math.max(this.gcTime || 0, newGcTime ?? (utils.isServer ? Infinity : 5 * 60 * 1000));
19
21
  }
20
22
  clearGcTimeout() {
21
23
  if (this.#gcTimeout) {
@@ -25,5 +27,5 @@ class Removable {
25
27
  }
26
28
  }
27
29
 
28
- export { Removable };
29
- //# sourceMappingURL=removable.mjs.map
30
+ exports.Removable = Removable;
31
+ //# sourceMappingURL=removable.cjs.map
@@ -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.cjs","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,oBAAc,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,cAAQ,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;;;;"}
@@ -7,3 +7,4 @@ export declare abstract class Removable {
7
7
  protected clearGcTimeout(): void;
8
8
  protected abstract optionalRemove(): void;
9
9
  }
10
+ //# sourceMappingURL=removable.d.ts.map