@tanstack/query-core 5.0.0-alpha.6 → 5.0.0-alpha.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/_virtual/{_rollupPluginBabelHelpers.js → _rollupPluginBabelHelpers.legacy.cjs} +1 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs.map +1 -0
- package/build/lib/_virtual/{_rollupPluginBabelHelpers.esm.js → _rollupPluginBabelHelpers.legacy.js} +1 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js.map +1 -0
- package/build/lib/{focusManager.mjs → focusManager.cjs} +9 -6
- package/build/lib/{focusManager.mjs.map → focusManager.cjs.map} +1 -1
- package/build/lib/focusManager.d.ts +2 -1
- package/build/lib/focusManager.d.ts.map +1 -0
- package/build/lib/focusManager.js +20 -39
- package/build/lib/focusManager.js.map +1 -1
- package/build/lib/focusManager.legacy.cjs +90 -0
- package/build/lib/focusManager.legacy.cjs.map +1 -0
- package/build/lib/{focusManager.esm.js → focusManager.legacy.js} +4 -4
- package/build/lib/focusManager.legacy.js.map +1 -0
- package/build/lib/{hydration.mjs → hydration.cjs} +11 -20
- package/build/lib/hydration.cjs.map +1 -0
- package/build/lib/hydration.d.ts +3 -6
- package/build/lib/hydration.d.ts.map +1 -0
- package/build/lib/hydration.js +7 -28
- package/build/lib/hydration.js.map +1 -1
- package/build/lib/hydration.legacy.cjs +92 -0
- package/build/lib/hydration.legacy.cjs.map +1 -0
- package/build/lib/{hydration.esm.js → hydration.legacy.js} +6 -19
- package/build/lib/hydration.legacy.js.map +1 -0
- package/build/lib/index.cjs +40 -0
- package/build/lib/index.cjs.map +1 -0
- package/build/lib/index.d.ts +5 -3
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +13 -39
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.legacy.cjs +40 -0
- package/build/lib/index.legacy.cjs.map +1 -0
- package/build/lib/index.legacy.js +14 -0
- package/build/lib/index.legacy.js.map +1 -0
- package/build/lib/{infiniteQueryBehavior.mjs → infiniteQueryBehavior.cjs} +8 -4
- package/build/lib/{infiniteQueryBehavior.mjs.map → infiniteQueryBehavior.cjs.map} +1 -1
- package/build/lib/infiniteQueryBehavior.d.ts +1 -0
- package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
- package/build/lib/infiniteQueryBehavior.js +7 -12
- package/build/lib/infiniteQueryBehavior.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.cjs +131 -0
- package/build/lib/infiniteQueryBehavior.legacy.cjs.map +1 -0
- package/build/lib/{infiniteQueryBehavior.esm.js → infiniteQueryBehavior.legacy.js} +2 -2
- package/build/lib/infiniteQueryBehavior.legacy.js.map +1 -0
- package/build/lib/{infiniteQueryObserver.mjs → infiniteQueryObserver.cjs} +11 -9
- package/build/lib/{infiniteQueryObserver.mjs.map → infiniteQueryObserver.cjs.map} +1 -1
- package/build/lib/infiniteQueryObserver.d.ts +2 -1
- package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
- package/build/lib/infiniteQueryObserver.js +10 -13
- package/build/lib/infiniteQueryObserver.js.map +1 -1
- package/build/lib/infiniteQueryObserver.legacy.cjs +78 -0
- package/build/lib/infiniteQueryObserver.legacy.cjs.map +1 -0
- package/build/lib/{infiniteQueryObserver.esm.js → infiniteQueryObserver.legacy.js} +3 -3
- package/build/lib/infiniteQueryObserver.legacy.js.map +1 -0
- package/build/lib/{mutation.mjs → mutation.cjs} +13 -10
- package/build/lib/mutation.cjs.map +1 -0
- package/build/lib/mutation.d.ts +2 -1
- package/build/lib/mutation.d.ts.map +1 -0
- package/build/lib/mutation.js +107 -135
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.legacy.cjs +262 -0
- package/build/lib/mutation.legacy.cjs.map +1 -0
- package/build/lib/{mutation.esm.js → mutation.legacy.js} +6 -6
- package/build/lib/mutation.legacy.js.map +1 -0
- package/build/lib/{mutationCache.mjs → mutationCache.cjs} +21 -18
- package/build/lib/mutationCache.cjs.map +1 -0
- package/build/lib/mutationCache.d.ts +3 -2
- package/build/lib/mutationCache.d.ts.map +1 -0
- package/build/lib/mutationCache.js +33 -47
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.legacy.cjs +98 -0
- package/build/lib/mutationCache.legacy.cjs.map +1 -0
- package/build/lib/{mutationCache.esm.js → mutationCache.legacy.js} +11 -10
- package/build/lib/mutationCache.legacy.js.map +1 -0
- package/build/lib/{mutationObserver.mjs → mutationObserver.cjs} +13 -11
- package/build/lib/mutationObserver.cjs.map +1 -0
- package/build/lib/mutationObserver.d.ts +2 -1
- package/build/lib/mutationObserver.d.ts.map +1 -0
- package/build/lib/mutationObserver.js +59 -91
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/mutationObserver.legacy.cjs +128 -0
- package/build/lib/mutationObserver.legacy.cjs.map +1 -0
- package/build/lib/{mutationObserver.esm.js → mutationObserver.legacy.js} +7 -7
- package/build/lib/mutationObserver.legacy.js.map +1 -0
- package/build/lib/{notifyManager.mjs → notifyManager.cjs} +8 -5
- package/build/lib/{notifyManager.mjs.map → notifyManager.cjs.map} +1 -1
- package/build/lib/notifyManager.d.ts +4 -3
- package/build/lib/notifyManager.d.ts.map +1 -0
- package/build/lib/notifyManager.js +4 -7
- package/build/lib/notifyManager.js.map +1 -1
- package/build/lib/notifyManager.legacy.cjs +92 -0
- package/build/lib/notifyManager.legacy.cjs.map +1 -0
- package/build/lib/{notifyManager.esm.js → notifyManager.legacy.js} +2 -2
- package/build/lib/notifyManager.legacy.js.map +1 -0
- package/build/lib/{onlineManager.mjs → onlineManager.cjs} +16 -10
- package/build/lib/onlineManager.cjs.map +1 -0
- package/build/lib/onlineManager.d.ts +2 -1
- package/build/lib/onlineManager.d.ts.map +1 -0
- package/build/lib/onlineManager.js +26 -41
- package/build/lib/onlineManager.js.map +1 -1
- package/build/lib/onlineManager.legacy.cjs +94 -0
- package/build/lib/onlineManager.legacy.cjs.map +1 -0
- package/build/lib/{onlineManager.esm.js → onlineManager.legacy.js} +11 -8
- package/build/lib/onlineManager.legacy.js.map +1 -0
- package/build/lib/{queriesObserver.mjs → queriesObserver.cjs} +51 -26
- package/build/lib/queriesObserver.cjs.map +1 -0
- package/build/lib/queriesObserver.d.ts +14 -6
- package/build/lib/queriesObserver.d.ts.map +1 -0
- package/build/lib/queriesObserver.js +99 -107
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/queriesObserver.legacy.cjs +207 -0
- package/build/lib/queriesObserver.legacy.cjs.map +1 -0
- package/build/lib/{queriesObserver.esm.js → queriesObserver.legacy.js} +62 -22
- package/build/lib/queriesObserver.legacy.js.map +1 -0
- package/build/lib/{query.mjs → query.cjs} +22 -20
- package/build/lib/query.cjs.map +1 -0
- package/build/lib/query.d.ts +3 -2
- package/build/lib/query.d.ts.map +1 -0
- package/build/lib/query.js +173 -224
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.legacy.cjs +471 -0
- package/build/lib/query.legacy.cjs.map +1 -0
- package/build/lib/{query.esm.js → query.legacy.js} +10 -10
- package/build/lib/query.legacy.js.map +1 -0
- package/build/lib/{queryCache.mjs → queryCache.cjs} +28 -23
- package/build/lib/queryCache.cjs.map +1 -0
- package/build/lib/queryCache.d.ts +3 -3
- package/build/lib/queryCache.d.ts.map +1 -0
- package/build/lib/queryCache.js +31 -37
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.legacy.cjs +111 -0
- package/build/lib/queryCache.legacy.cjs.map +1 -0
- package/build/lib/{queryCache.esm.js → queryCache.legacy.js} +13 -12
- package/build/lib/queryCache.legacy.js.map +1 -0
- package/build/lib/{queryClient.mjs → queryClient.cjs} +50 -42
- package/build/lib/queryClient.cjs.map +1 -0
- package/build/lib/queryClient.d.ts +2 -2
- package/build/lib/queryClient.d.ts.map +1 -0
- package/build/lib/queryClient.js +98 -134
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.legacy.cjs +322 -0
- package/build/lib/queryClient.legacy.cjs.map +1 -0
- package/build/lib/{queryClient.esm.js → queryClient.legacy.js} +28 -25
- package/build/lib/queryClient.legacy.js.map +1 -0
- package/build/lib/{queryObserver.mjs → queryObserver.cjs} +40 -50
- package/build/lib/queryObserver.cjs.map +1 -0
- package/build/lib/queryObserver.d.ts +6 -7
- package/build/lib/queryObserver.d.ts.map +1 -0
- package/build/lib/queryObserver.js +208 -323
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.legacy.cjs +526 -0
- package/build/lib/queryObserver.legacy.cjs.map +1 -0
- package/build/lib/{queryObserver.esm.js → queryObserver.legacy.js} +71 -88
- package/build/lib/queryObserver.legacy.js.map +1 -0
- package/build/lib/{removable.mjs → removable.cjs} +7 -5
- package/build/lib/{removable.mjs.map → removable.cjs.map} +1 -1
- package/build/lib/removable.d.ts +1 -0
- package/build/lib/removable.d.ts.map +1 -0
- package/build/lib/removable.js +9 -18
- package/build/lib/removable.js.map +1 -1
- package/build/lib/removable.legacy.cjs +38 -0
- package/build/lib/removable.legacy.cjs.map +1 -0
- package/build/lib/{removable.esm.js → removable.legacy.js} +3 -3
- package/build/lib/removable.legacy.js.map +1 -0
- package/build/lib/{retryer.mjs → retryer.cjs} +15 -8
- package/build/lib/{retryer.mjs.map → retryer.cjs.map} +1 -1
- package/build/lib/retryer.d.ts +5 -4
- package/build/lib/retryer.d.ts.map +1 -0
- package/build/lib/retryer.js +21 -25
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/retryer.legacy.cjs +158 -0
- package/build/lib/retryer.legacy.cjs.map +1 -0
- package/build/lib/{retryer.esm.js → retryer.legacy.js} +6 -4
- package/build/lib/retryer.legacy.js.map +1 -0
- package/build/lib/{subscribable.esm.js → subscribable.cjs} +8 -6
- package/build/lib/subscribable.cjs.map +1 -0
- package/build/lib/subscribable.d.ts +3 -2
- package/build/lib/subscribable.d.ts.map +1 -0
- package/build/lib/subscribable.js +5 -7
- package/build/lib/subscribable.js.map +1 -1
- package/build/lib/subscribable.legacy.cjs +28 -0
- package/build/lib/subscribable.legacy.cjs.map +1 -0
- package/build/lib/{subscribable.mjs → subscribable.legacy.js} +5 -5
- package/build/lib/subscribable.legacy.js.map +1 -0
- package/build/lib/tests/focusManager.test.d.ts +1 -0
- package/build/lib/tests/focusManager.test.d.ts.map +1 -0
- package/build/lib/tests/hydration.test.d.ts +1 -0
- package/build/lib/tests/hydration.test.d.ts.map +1 -0
- package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
- package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
- package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
- package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
- package/build/lib/tests/mutationCache.test.d.ts +1 -0
- package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
- package/build/lib/tests/mutationObserver.test.d.ts +1 -0
- package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
- package/build/lib/tests/mutations.test.d.ts +1 -0
- package/build/lib/tests/mutations.test.d.ts.map +1 -0
- package/build/lib/tests/notifyManager.test.d.ts +1 -0
- package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
- package/build/lib/tests/onlineManager.test.d.ts +1 -0
- package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
- package/build/lib/tests/queriesObserver.test.d.ts +1 -0
- package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
- package/build/lib/tests/query.test.d.ts +1 -0
- package/build/lib/tests/query.test.d.ts.map +1 -0
- package/build/lib/tests/queryCache.test.d.ts +1 -0
- package/build/lib/tests/queryCache.test.d.ts.map +1 -0
- package/build/lib/tests/queryClient.test.d.ts +1 -0
- package/build/lib/tests/queryClient.test.d.ts.map +1 -0
- package/build/lib/tests/queryObserver.test.d.ts +1 -0
- package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
- package/build/lib/tests/utils.d.ts +3 -2
- package/build/lib/tests/utils.d.ts.map +1 -0
- package/build/lib/tests/utils.test.d.ts +1 -0
- package/build/lib/tests/utils.test.d.ts.map +1 -0
- package/build/lib/types.d.ts +34 -46
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/{utils.mjs → utils.cjs} +23 -2
- package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
- package/build/lib/utils.d.ts +4 -3
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +2 -23
- package/build/lib/utils.js.map +1 -1
- package/build/lib/utils.legacy.cjs +248 -0
- package/build/lib/utils.legacy.cjs.map +1 -0
- package/build/lib/{utils.esm.js → utils.legacy.js} +1 -1
- package/build/lib/utils.legacy.js.map +1 -0
- package/package.json +13 -9
- package/src/hydration.ts +18 -37
- package/src/index.ts +3 -4
- package/src/mutation.ts +1 -1
- package/src/mutationCache.ts +4 -4
- package/src/mutationObserver.ts +1 -1
- package/src/onlineManager.ts +8 -4
- package/src/queriesObserver.ts +75 -25
- package/src/query.ts +4 -4
- package/src/queryCache.ts +5 -8
- package/src/queryClient.ts +20 -20
- package/src/queryObserver.ts +47 -55
- package/src/subscribable.ts +5 -5
- package/src/tests/hydration.test.tsx +7 -3
- package/src/tests/query.test.tsx +1 -1
- package/src/tests/queryCache.test.tsx +1 -19
- package/src/tests/queryClient.test.tsx +39 -3
- package/src/tests/queryObserver.test.tsx +121 -0
- package/src/types.ts +14 -21
- package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/lib/focusManager.esm.js.map +0 -1
- package/build/lib/hydration.esm.js.map +0 -1
- package/build/lib/hydration.mjs.map +0 -1
- package/build/lib/index.esm.js +0 -14
- package/build/lib/index.esm.js.map +0 -1
- package/build/lib/index.mjs +0 -14
- package/build/lib/index.mjs.map +0 -1
- package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
- package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
- package/build/lib/mutation.esm.js.map +0 -1
- package/build/lib/mutation.mjs.map +0 -1
- package/build/lib/mutationCache.esm.js.map +0 -1
- package/build/lib/mutationCache.mjs.map +0 -1
- package/build/lib/mutationObserver.esm.js.map +0 -1
- package/build/lib/mutationObserver.mjs.map +0 -1
- package/build/lib/notifyManager.esm.js.map +0 -1
- package/build/lib/onlineManager.esm.js.map +0 -1
- package/build/lib/onlineManager.mjs.map +0 -1
- package/build/lib/queriesObserver.esm.js.map +0 -1
- package/build/lib/queriesObserver.mjs.map +0 -1
- package/build/lib/query.esm.js.map +0 -1
- package/build/lib/query.mjs.map +0 -1
- package/build/lib/queryCache.esm.js.map +0 -1
- package/build/lib/queryCache.mjs.map +0 -1
- package/build/lib/queryClient.esm.js.map +0 -1
- package/build/lib/queryClient.mjs.map +0 -1
- package/build/lib/queryObserver.esm.js.map +0 -1
- package/build/lib/queryObserver.mjs.map +0 -1
- package/build/lib/removable.esm.js.map +0 -1
- package/build/lib/retryer.esm.js.map +0 -1
- package/build/lib/subscribable.esm.js.map +0 -1
- package/build/lib/subscribable.mjs.map +0 -1
- package/build/lib/utils.esm.js.map +0 -1
- package/build/umd/index.development.js +0 -2683
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -2
- package/build/umd/index.production.js.map +0 -1
package/build/lib/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sources":["../../src/query.ts"],"sourcesContent":["import { noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n DefaultError,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: FetchMeta\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #promise?: Promise<TData>\n #retryer?: Retryer<TData>\n #observers: QueryObserver<any, any, any, any, any>[]\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.#setOptions(config.options)\n this.#observers = []\n this.#cache = config.cache\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = config.state || getDefaultState(this.options)\n this.state = this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n #setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n protected optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false,\n )\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.#observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) !== -1) {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n if (!this.#observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.#observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.#promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.#promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.#setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn)\n if (observer) {\n this.#setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Create query function context\n const queryFnContext: Omit<QueryFunctionContext<TQueryKey>, 'signal'> = {\n queryKey: this.queryKey,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(new Error('Missing queryFn'))\n }\n this.#abortSignalConsumed = false\n return this.options.queryFn(\n queryFnContext as QueryFunctionContext<TQueryKey>,\n )\n }\n\n // Trigger behavior hook\n const context: Omit<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(\n context as FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n )\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => Promise<TData>,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error('undefined') as any)\n return\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.#promise = this.#retryer.promise\n\n return this.#promise\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'pending',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate(action)\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n"],"names":["_classPrivateFieldLooseKey","Query","Removable","constructor","config","_classPrivateFieldLooseBase","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","updateGcTime","gcTime","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.js","sources":["../../src/query.ts"],"sourcesContent":["import { noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n DefaultError,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: FetchMeta\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #promise?: Promise<TData>\n #retryer?: Retryer<TData>\n #observers: QueryObserver<any, any, any, any, any>[]\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.#setOptions(config.options)\n this.#observers = []\n this.#cache = config.cache\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = config.state || getDefaultState(this.options)\n this.state = this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n #setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n protected optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false,\n )\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.#observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.includes(observer)) {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n if (!this.#observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.#observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.#promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.#promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.#setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn)\n if (observer) {\n this.#setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Create query function context\n const queryFnContext: Omit<QueryFunctionContext<TQueryKey>, 'signal'> = {\n queryKey: this.queryKey,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(new Error('Missing queryFn'))\n }\n this.#abortSignalConsumed = false\n return this.options.queryFn(\n queryFnContext as QueryFunctionContext<TQueryKey>,\n )\n }\n\n // Trigger behavior hook\n const context: Omit<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(\n context as FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n )\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => Promise<TData>,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.#promise = this.#retryer.promise\n\n return this.#promise\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'pending',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate()\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","#setOptions","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","includes","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","#dispatch","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
|
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.legacy.cjs');
|
|
4
|
+
var utils = require('./utils.legacy.cjs');
|
|
5
|
+
var notifyManager = require('./notifyManager.legacy.cjs');
|
|
6
|
+
var retryer = require('./retryer.legacy.cjs');
|
|
7
|
+
var removable = require('./removable.legacy.cjs');
|
|
8
|
+
|
|
9
|
+
// TYPES
|
|
10
|
+
var _initialState = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("initialState");
|
|
11
|
+
var _revertState = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("revertState");
|
|
12
|
+
var _cache = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("cache");
|
|
13
|
+
var _promise = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("promise");
|
|
14
|
+
var _retryer = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("retryer");
|
|
15
|
+
var _observers = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("observers");
|
|
16
|
+
var _defaultOptions = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("defaultOptions");
|
|
17
|
+
var _abortSignalConsumed = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("abortSignalConsumed");
|
|
18
|
+
var _setOptions = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("setOptions");
|
|
19
|
+
var _dispatch = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("dispatch");
|
|
20
|
+
// CLASS
|
|
21
|
+
|
|
22
|
+
class Query extends removable.Removable {
|
|
23
|
+
constructor(config) {
|
|
24
|
+
super();
|
|
25
|
+
Object.defineProperty(this, _dispatch, {
|
|
26
|
+
value: _dispatch2
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, _setOptions, {
|
|
29
|
+
value: _setOptions2
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, _initialState, {
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, _revertState, {
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, _cache, {
|
|
40
|
+
writable: true,
|
|
41
|
+
value: void 0
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, _promise, {
|
|
44
|
+
writable: true,
|
|
45
|
+
value: void 0
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(this, _retryer, {
|
|
48
|
+
writable: true,
|
|
49
|
+
value: void 0
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(this, _observers, {
|
|
52
|
+
writable: true,
|
|
53
|
+
value: void 0
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(this, _defaultOptions, {
|
|
56
|
+
writable: true,
|
|
57
|
+
value: void 0
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(this, _abortSignalConsumed, {
|
|
60
|
+
writable: true,
|
|
61
|
+
value: void 0
|
|
62
|
+
});
|
|
63
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _abortSignalConsumed)[_abortSignalConsumed] = false;
|
|
64
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _defaultOptions)[_defaultOptions] = config.defaultOptions;
|
|
65
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setOptions)[_setOptions](config.options);
|
|
66
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = [];
|
|
67
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache] = config.cache;
|
|
68
|
+
this.queryKey = config.queryKey;
|
|
69
|
+
this.queryHash = config.queryHash;
|
|
70
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _initialState)[_initialState] = config.state || getDefaultState(this.options);
|
|
71
|
+
this.state = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _initialState)[_initialState];
|
|
72
|
+
this.scheduleGc();
|
|
73
|
+
}
|
|
74
|
+
get meta() {
|
|
75
|
+
return this.options.meta;
|
|
76
|
+
}
|
|
77
|
+
optionalRemove() {
|
|
78
|
+
if (!_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].length && this.state.fetchStatus === 'idle') {
|
|
79
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].remove(this);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
setData(newData, options) {
|
|
83
|
+
const data = utils.replaceData(this.state.data, newData, this.options);
|
|
84
|
+
|
|
85
|
+
// Set data and mark it as cached
|
|
86
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
87
|
+
data,
|
|
88
|
+
type: 'success',
|
|
89
|
+
dataUpdatedAt: options == null ? void 0 : options.updatedAt,
|
|
90
|
+
manual: options == null ? void 0 : options.manual
|
|
91
|
+
});
|
|
92
|
+
return data;
|
|
93
|
+
}
|
|
94
|
+
setState(state, setStateOptions) {
|
|
95
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
96
|
+
type: 'setState',
|
|
97
|
+
state,
|
|
98
|
+
setStateOptions
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
cancel(options) {
|
|
102
|
+
var _classPrivateFieldLoo;
|
|
103
|
+
const promise = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _promise)[_promise];
|
|
104
|
+
(_classPrivateFieldLoo = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer]) == null ? void 0 : _classPrivateFieldLoo.cancel(options);
|
|
105
|
+
return promise ? promise.then(utils.noop).catch(utils.noop) : Promise.resolve();
|
|
106
|
+
}
|
|
107
|
+
destroy() {
|
|
108
|
+
super.destroy();
|
|
109
|
+
this.cancel({
|
|
110
|
+
silent: true
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
reset() {
|
|
114
|
+
this.destroy();
|
|
115
|
+
this.setState(_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _initialState)[_initialState]);
|
|
116
|
+
}
|
|
117
|
+
isActive() {
|
|
118
|
+
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].some(observer => observer.options.enabled !== false);
|
|
119
|
+
}
|
|
120
|
+
isDisabled() {
|
|
121
|
+
return this.getObserversCount() > 0 && !this.isActive();
|
|
122
|
+
}
|
|
123
|
+
isStale() {
|
|
124
|
+
return this.state.isInvalidated || !this.state.dataUpdatedAt || _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].some(observer => observer.getCurrentResult().isStale);
|
|
125
|
+
}
|
|
126
|
+
isStaleByTime(staleTime = 0) {
|
|
127
|
+
return this.state.isInvalidated || !this.state.dataUpdatedAt || !utils.timeUntilStale(this.state.dataUpdatedAt, staleTime);
|
|
128
|
+
}
|
|
129
|
+
onFocus() {
|
|
130
|
+
var _classPrivateFieldLoo2;
|
|
131
|
+
const observer = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].find(x => x.shouldFetchOnWindowFocus());
|
|
132
|
+
observer == null ? void 0 : observer.refetch({
|
|
133
|
+
cancelRefetch: false
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// Continue fetch if currently paused
|
|
137
|
+
(_classPrivateFieldLoo2 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer]) == null ? void 0 : _classPrivateFieldLoo2.continue();
|
|
138
|
+
}
|
|
139
|
+
onOnline() {
|
|
140
|
+
var _classPrivateFieldLoo3;
|
|
141
|
+
const observer = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].find(x => x.shouldFetchOnReconnect());
|
|
142
|
+
observer == null ? void 0 : observer.refetch({
|
|
143
|
+
cancelRefetch: false
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
// Continue fetch if currently paused
|
|
147
|
+
(_classPrivateFieldLoo3 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer]) == null ? void 0 : _classPrivateFieldLoo3.continue();
|
|
148
|
+
}
|
|
149
|
+
addObserver(observer) {
|
|
150
|
+
if (!_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].includes(observer)) {
|
|
151
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].push(observer);
|
|
152
|
+
|
|
153
|
+
// Stop the query from being garbage collected
|
|
154
|
+
this.clearGcTimeout();
|
|
155
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].notify({
|
|
156
|
+
type: 'observerAdded',
|
|
157
|
+
query: this,
|
|
158
|
+
observer
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
removeObserver(observer) {
|
|
163
|
+
if (_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].includes(observer)) {
|
|
164
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].filter(x => x !== observer);
|
|
165
|
+
if (!_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].length) {
|
|
166
|
+
// If the transport layer does not support cancellation
|
|
167
|
+
// we'll let the query continue so the result can be cached
|
|
168
|
+
if (_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer]) {
|
|
169
|
+
if (_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _abortSignalConsumed)[_abortSignalConsumed]) {
|
|
170
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer].cancel({
|
|
171
|
+
revert: true
|
|
172
|
+
});
|
|
173
|
+
} else {
|
|
174
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer].cancelRetry();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
this.scheduleGc();
|
|
178
|
+
}
|
|
179
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].notify({
|
|
180
|
+
type: 'observerRemoved',
|
|
181
|
+
query: this,
|
|
182
|
+
observer
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
getObserversCount() {
|
|
187
|
+
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].length;
|
|
188
|
+
}
|
|
189
|
+
invalidate() {
|
|
190
|
+
if (!this.state.isInvalidated) {
|
|
191
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
192
|
+
type: 'invalidate'
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
fetch(options, fetchOptions) {
|
|
197
|
+
var _this$options$behavio, _context$fetchOptions;
|
|
198
|
+
if (this.state.fetchStatus !== 'idle') {
|
|
199
|
+
if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {
|
|
200
|
+
// Silently cancel current fetch if the user wants to cancel refetches
|
|
201
|
+
this.cancel({
|
|
202
|
+
silent: true
|
|
203
|
+
});
|
|
204
|
+
} else if (_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _promise)[_promise]) {
|
|
205
|
+
var _classPrivateFieldLoo4;
|
|
206
|
+
// make sure that retries that were potentially cancelled due to unmounts can continue
|
|
207
|
+
(_classPrivateFieldLoo4 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer]) == null ? void 0 : _classPrivateFieldLoo4.continueRetry();
|
|
208
|
+
// Return current promise if we are already fetching
|
|
209
|
+
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _promise)[_promise];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Update config if passed, otherwise the config from the last execution is used
|
|
214
|
+
if (options) {
|
|
215
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setOptions)[_setOptions](options);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// Use the options from the first observer with a query function if no function is found.
|
|
219
|
+
// This can happen when the query is hydrated or created with setQueryData.
|
|
220
|
+
if (!this.options.queryFn) {
|
|
221
|
+
const observer = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].find(x => x.options.queryFn);
|
|
222
|
+
if (observer) {
|
|
223
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setOptions)[_setOptions](observer.options);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
227
|
+
if (!Array.isArray(this.options.queryKey)) {
|
|
228
|
+
console.error(`As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const abortController = new AbortController();
|
|
232
|
+
|
|
233
|
+
// Create query function context
|
|
234
|
+
const queryFnContext = {
|
|
235
|
+
queryKey: this.queryKey,
|
|
236
|
+
meta: this.meta
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
// Adds an enumerable signal property to the object that
|
|
240
|
+
// which sets abortSignalConsumed to true when the signal
|
|
241
|
+
// is read.
|
|
242
|
+
const addSignalProperty = object => {
|
|
243
|
+
Object.defineProperty(object, 'signal', {
|
|
244
|
+
enumerable: true,
|
|
245
|
+
get: () => {
|
|
246
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _abortSignalConsumed)[_abortSignalConsumed] = true;
|
|
247
|
+
return abortController.signal;
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
addSignalProperty(queryFnContext);
|
|
252
|
+
|
|
253
|
+
// Create fetch function
|
|
254
|
+
const fetchFn = () => {
|
|
255
|
+
if (!this.options.queryFn) {
|
|
256
|
+
return Promise.reject(new Error('Missing queryFn'));
|
|
257
|
+
}
|
|
258
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _abortSignalConsumed)[_abortSignalConsumed] = false;
|
|
259
|
+
return this.options.queryFn(queryFnContext);
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
// Trigger behavior hook
|
|
263
|
+
const context = {
|
|
264
|
+
fetchOptions,
|
|
265
|
+
options: this.options,
|
|
266
|
+
queryKey: this.queryKey,
|
|
267
|
+
state: this.state,
|
|
268
|
+
fetchFn
|
|
269
|
+
};
|
|
270
|
+
addSignalProperty(context);
|
|
271
|
+
(_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context);
|
|
272
|
+
|
|
273
|
+
// Store state in case the current fetch needs to be reverted
|
|
274
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _revertState)[_revertState] = this.state;
|
|
275
|
+
|
|
276
|
+
// Set to fetching state if not already in it
|
|
277
|
+
if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {
|
|
278
|
+
var _context$fetchOptions2;
|
|
279
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
280
|
+
type: 'fetch',
|
|
281
|
+
meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
const onError = error => {
|
|
285
|
+
// Optimistically update state if needed
|
|
286
|
+
if (!(retryer.isCancelledError(error) && error.silent)) {
|
|
287
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
288
|
+
type: 'error',
|
|
289
|
+
error: error
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
if (!retryer.isCancelledError(error)) {
|
|
293
|
+
var _classPrivateFieldLoo5, _classPrivateFieldLoo6, _classPrivateFieldLoo7, _classPrivateFieldLoo8;
|
|
294
|
+
// Notify cache callback
|
|
295
|
+
(_classPrivateFieldLoo5 = (_classPrivateFieldLoo6 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].config).onError) == null ? void 0 : _classPrivateFieldLoo5.call(_classPrivateFieldLoo6, error, this);
|
|
296
|
+
(_classPrivateFieldLoo7 = (_classPrivateFieldLoo8 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].config).onSettled) == null ? void 0 : _classPrivateFieldLoo7.call(_classPrivateFieldLoo8, this.state.data, error, this);
|
|
297
|
+
}
|
|
298
|
+
if (!this.isFetchingOptimistic) {
|
|
299
|
+
// Schedule query gc after fetching
|
|
300
|
+
this.scheduleGc();
|
|
301
|
+
}
|
|
302
|
+
this.isFetchingOptimistic = false;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
// Try to fetch the data
|
|
306
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer] = retryer.createRetryer({
|
|
307
|
+
fn: context.fetchFn,
|
|
308
|
+
abort: abortController.abort.bind(abortController),
|
|
309
|
+
onSuccess: data => {
|
|
310
|
+
var _classPrivateFieldLoo9, _classPrivateFieldLoo10, _classPrivateFieldLoo11, _classPrivateFieldLoo12;
|
|
311
|
+
if (typeof data === 'undefined') {
|
|
312
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
313
|
+
console.error(`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`);
|
|
314
|
+
}
|
|
315
|
+
onError(new Error(`${this.queryHash} data is undefined`));
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
this.setData(data);
|
|
319
|
+
|
|
320
|
+
// Notify cache callback
|
|
321
|
+
(_classPrivateFieldLoo9 = (_classPrivateFieldLoo10 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].config).onSuccess) == null ? void 0 : _classPrivateFieldLoo9.call(_classPrivateFieldLoo10, data, this);
|
|
322
|
+
(_classPrivateFieldLoo11 = (_classPrivateFieldLoo12 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].config).onSettled) == null ? void 0 : _classPrivateFieldLoo11.call(_classPrivateFieldLoo12, data, this.state.error, this);
|
|
323
|
+
if (!this.isFetchingOptimistic) {
|
|
324
|
+
// Schedule query gc after fetching
|
|
325
|
+
this.scheduleGc();
|
|
326
|
+
}
|
|
327
|
+
this.isFetchingOptimistic = false;
|
|
328
|
+
},
|
|
329
|
+
onError,
|
|
330
|
+
onFail: (failureCount, error) => {
|
|
331
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
332
|
+
type: 'failed',
|
|
333
|
+
failureCount,
|
|
334
|
+
error
|
|
335
|
+
});
|
|
336
|
+
},
|
|
337
|
+
onPause: () => {
|
|
338
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
339
|
+
type: 'pause'
|
|
340
|
+
});
|
|
341
|
+
},
|
|
342
|
+
onContinue: () => {
|
|
343
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
|
|
344
|
+
type: 'continue'
|
|
345
|
+
});
|
|
346
|
+
},
|
|
347
|
+
retry: context.options.retry,
|
|
348
|
+
retryDelay: context.options.retryDelay,
|
|
349
|
+
networkMode: context.options.networkMode
|
|
350
|
+
});
|
|
351
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _promise)[_promise] = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer].promise;
|
|
352
|
+
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _promise)[_promise];
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
function _setOptions2(options) {
|
|
356
|
+
this.options = {
|
|
357
|
+
..._rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _defaultOptions)[_defaultOptions],
|
|
358
|
+
...options
|
|
359
|
+
};
|
|
360
|
+
this.updateGcTime(this.options.gcTime);
|
|
361
|
+
}
|
|
362
|
+
function _dispatch2(action) {
|
|
363
|
+
const reducer = state => {
|
|
364
|
+
var _action$meta, _action$dataUpdatedAt;
|
|
365
|
+
switch (action.type) {
|
|
366
|
+
case 'failed':
|
|
367
|
+
return {
|
|
368
|
+
...state,
|
|
369
|
+
fetchFailureCount: action.failureCount,
|
|
370
|
+
fetchFailureReason: action.error
|
|
371
|
+
};
|
|
372
|
+
case 'pause':
|
|
373
|
+
return {
|
|
374
|
+
...state,
|
|
375
|
+
fetchStatus: 'paused'
|
|
376
|
+
};
|
|
377
|
+
case 'continue':
|
|
378
|
+
return {
|
|
379
|
+
...state,
|
|
380
|
+
fetchStatus: 'fetching'
|
|
381
|
+
};
|
|
382
|
+
case 'fetch':
|
|
383
|
+
return {
|
|
384
|
+
...state,
|
|
385
|
+
fetchFailureCount: 0,
|
|
386
|
+
fetchFailureReason: null,
|
|
387
|
+
fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,
|
|
388
|
+
fetchStatus: retryer.canFetch(this.options.networkMode) ? 'fetching' : 'paused',
|
|
389
|
+
...(!state.dataUpdatedAt && {
|
|
390
|
+
error: null,
|
|
391
|
+
status: 'pending'
|
|
392
|
+
})
|
|
393
|
+
};
|
|
394
|
+
case 'success':
|
|
395
|
+
return {
|
|
396
|
+
...state,
|
|
397
|
+
data: action.data,
|
|
398
|
+
dataUpdateCount: state.dataUpdateCount + 1,
|
|
399
|
+
dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),
|
|
400
|
+
error: null,
|
|
401
|
+
isInvalidated: false,
|
|
402
|
+
status: 'success',
|
|
403
|
+
...(!action.manual && {
|
|
404
|
+
fetchStatus: 'idle',
|
|
405
|
+
fetchFailureCount: 0,
|
|
406
|
+
fetchFailureReason: null
|
|
407
|
+
})
|
|
408
|
+
};
|
|
409
|
+
case 'error':
|
|
410
|
+
const error = action.error;
|
|
411
|
+
if (retryer.isCancelledError(error) && error.revert && _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _revertState)[_revertState]) {
|
|
412
|
+
return {
|
|
413
|
+
..._rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _revertState)[_revertState]
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
return {
|
|
417
|
+
...state,
|
|
418
|
+
error: error,
|
|
419
|
+
errorUpdateCount: state.errorUpdateCount + 1,
|
|
420
|
+
errorUpdatedAt: Date.now(),
|
|
421
|
+
fetchFailureCount: state.fetchFailureCount + 1,
|
|
422
|
+
fetchFailureReason: error,
|
|
423
|
+
fetchStatus: 'idle',
|
|
424
|
+
status: 'error'
|
|
425
|
+
};
|
|
426
|
+
case 'invalidate':
|
|
427
|
+
return {
|
|
428
|
+
...state,
|
|
429
|
+
isInvalidated: true
|
|
430
|
+
};
|
|
431
|
+
case 'setState':
|
|
432
|
+
return {
|
|
433
|
+
...state,
|
|
434
|
+
...action.state
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
this.state = reducer(this.state);
|
|
439
|
+
notifyManager.notifyManager.batch(() => {
|
|
440
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].forEach(observer => {
|
|
441
|
+
observer.onQueryUpdate();
|
|
442
|
+
});
|
|
443
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cache)[_cache].notify({
|
|
444
|
+
query: this,
|
|
445
|
+
type: 'updated',
|
|
446
|
+
action
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
function getDefaultState(options) {
|
|
451
|
+
const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;
|
|
452
|
+
const hasData = typeof data !== 'undefined';
|
|
453
|
+
const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;
|
|
454
|
+
return {
|
|
455
|
+
data,
|
|
456
|
+
dataUpdateCount: 0,
|
|
457
|
+
dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,
|
|
458
|
+
error: null,
|
|
459
|
+
errorUpdateCount: 0,
|
|
460
|
+
errorUpdatedAt: 0,
|
|
461
|
+
fetchFailureCount: 0,
|
|
462
|
+
fetchFailureReason: null,
|
|
463
|
+
fetchMeta: null,
|
|
464
|
+
isInvalidated: false,
|
|
465
|
+
status: hasData ? 'success' : 'pending',
|
|
466
|
+
fetchStatus: 'idle'
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
exports.Query = Query;
|
|
471
|
+
//# sourceMappingURL=query.legacy.cjs.map
|