@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutationCache.esm.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\n this.#mutations = []\n this.#mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.#mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.#mutations = this.#mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.#mutations\n }\n\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.#mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters = {}): Mutation[] {\n return this.#mutations.filter((mutation) =>\n matchMutation(filters, mutation),\n )\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.#resuming = (this.#resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.#mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.#resuming = undefined\n })\n\n return this.#resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","build","client","options","state","mutation","Mutation","mutationCache","mutationId","defaultMutationOptions","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop","undefined"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\n this.#mutations = []\n this.#mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.#mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.#mutations = this.#mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.#mutations\n }\n\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.#mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters = {}): Mutation[] {\n return this.#mutations.filter((mutation) =>\n matchMutation(filters, mutation),\n )\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.#resuming = (this.#resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.#mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.#resuming = undefined\n })\n\n return this.#resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","build","client","options","state","mutation","Mutation","mutationCache","mutationId","defaultMutationOptions","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop","undefined"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutationObserver.esm.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.#currentResult\n }\n\n reset(): void {\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","undefined","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","listeners","length","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","hasListeners","onSuccess","data","context","onSettled","onError","error","forEach","listener"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutationObserver.mjs","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.#currentResult\n }\n\n reset(): void {\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","undefined","constructor","client","options","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","listeners","length","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","hasListeners","onSuccess","data","context","onSettled","onError","error","forEach","listener"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notifyManager.esm.js","sources":["../../src/notifyManager.ts"],"sourcesContent":["import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends Function>(callback: T): T => {\n return ((...args: any[]) => {\n schedule(() => {\n callback(...args)\n })\n }) as any\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n"],"names":["createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","batch","result","flush","schedule","push","scheduleMicrotask","batchCalls","args","originalQueue","length","forEach","setNotifyFunction","fn","setBatchNotifyFunction","notifyManager"],"mappings":";;AAEA;;AAQO,SAASA,mBAAmB,GAAG;EACpC,IAAIC,KAAuB,GAAG,EAAE,CAAA;EAChC,IAAIC,YAAY,GAAG,CAAC,CAAA;EACpB,IAAIC,QAAwB,GAAIC,QAAQ,IAAK;AAC3CA,IAAAA,QAAQ,EAAE,CAAA;GACX,CAAA;EACD,IAAIC,aAAkC,GAAID,QAAoB,IAAK;AACjEA,IAAAA,QAAQ,EAAE,CAAA;GACX,CAAA;EAED,MAAME,KAAK,GAAOF,QAAiB,IAAQ;AACzC,IAAA,IAAIG,MAAM,CAAA;AACVL,IAAAA,YAAY,EAAE,CAAA;IACd,IAAI;MACFK,MAAM,GAAGH,QAAQ,EAAE,CAAA;AACrB,KAAC,SAAS;AACRF,MAAAA,YAAY,EAAE,CAAA;MACd,IAAI,CAACA,YAAY,EAAE;AACjBM,QAAAA,KAAK,EAAE,CAAA;AACT,OAAA;AACF,KAAA;AACA,IAAA,OAAOD,MAAM,CAAA;GACd,CAAA;EAED,MAAME,QAAQ,GAAIL,QAAwB,IAAW;AACnD,IAAA,IAAIF,YAAY,EAAE;AAChBD,MAAAA,KAAK,CAACS,IAAI,CAACN,QAAQ,CAAC,CAAA;AACtB,KAAC,MAAM;AACLO,MAAAA,iBAAiB,CAAC,MAAM;QACtBR,QAAQ,CAACC,QAAQ,CAAC,CAAA;AACpB,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,CAAA;;AAED;AACF;AACA;EACE,MAAMQ,UAAU,GAAwBR,QAAW,IAAQ;IACzD,OAAQ,CAAC,GAAGS,IAAW,KAAK;AAC1BJ,MAAAA,QAAQ,CAAC,MAAM;QACbL,QAAQ,CAAC,GAAGS,IAAI,CAAC,CAAA;AACnB,OAAC,CAAC,CAAA;KACH,CAAA;GACF,CAAA;EAED,MAAML,KAAK,GAAG,MAAY;IACxB,MAAMM,aAAa,GAAGb,KAAK,CAAA;AAC3BA,IAAAA,KAAK,GAAG,EAAE,CAAA;IACV,IAAIa,aAAa,CAACC,MAAM,EAAE;AACxBJ,MAAAA,iBAAiB,CAAC,MAAM;AACtBN,QAAAA,aAAa,CAAC,MAAM;AAClBS,UAAAA,aAAa,CAACE,OAAO,CAAEZ,QAAQ,IAAK;YAClCD,QAAQ,CAACC,QAAQ,CAAC,CAAA;AACpB,WAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AACJ,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,CAAA;;AAED;AACF;AACA;AACA;EACE,MAAMa,iBAAiB,GAAIC,EAAkB,IAAK;AAChDf,IAAAA,QAAQ,GAAGe,EAAE,CAAA;GACd,CAAA;;AAED;AACF;AACA;AACA;EACE,MAAMC,sBAAsB,GAAID,EAAuB,IAAK;AAC1Db,IAAAA,aAAa,GAAGa,EAAE,CAAA;GACnB,CAAA;EAED,OAAO;IACLZ,KAAK;IACLM,UAAU;IACVH,QAAQ;IACRQ,iBAAiB;AACjBE,IAAAA,sBAAAA;GACD,CAAA;AACH,CAAA;;AAEA;AACaC,MAAAA,aAAa,GAAGpB,mBAAmB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onlineManager.esm.js","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n #online?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.#online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.#online === 'boolean') {\n return this.#online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["OnlineManager","Subscribable","constructor","onOnline","isServer","window","addEventListener","listener","removeEventListener","onSubscribe","setEventListener","onUnsubscribe","hasListeners","undefined","setup","online","setOnline","listeners","forEach","isOnline","navigator","onLine","onlineManager"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onlineManager.mjs","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n #online?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.#online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.#online === 'boolean') {\n return this.#online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["OnlineManager","Subscribable","constructor","onOnline","isServer","window","addEventListener","listener","removeEventListener","onSubscribe","setEventListener","onUnsubscribe","hasListeners","undefined","setup","online","setOnline","listeners","forEach","isOnline","navigator","onLine","onlineManager"],"mappings":";;;AAOO,MAAMA,aAAa,SAASC,YAAY,CAAC;AAC9C,EAAA,OAAO,CAAA;AACP,EAAA,QAAQ,CAAA;AAER,EAAA,MAAM,CAAA;AAENC,EAAAA,WAAW,GAAG;AACZ,IAAA,KAAK,EAAE,CAAA;AACP,IAAA,IAAI,CAAC,MAAM,GAAIC,QAAQ,IAAK;AAC1B;AACA;AACA,MAAA,IAAI,CAACC,QAAQ,IAAIC,MAAM,CAACC,gBAAgB,EAAE;AACxC,QAAA,MAAMC,QAAQ,GAAG,MAAMJ,QAAQ,EAAE,CAAA;AACjC;QACAE,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClDF,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAEnD,QAAA,OAAO,MAAM;AACX;AACAF,UAAAA,MAAM,CAACG,mBAAmB,CAAC,QAAQ,EAAED,QAAQ,CAAC,CAAA;AAC9CF,UAAAA,MAAM,CAACG,mBAAmB,CAAC,SAAS,EAAED,QAAQ,CAAC,CAAA;SAChD,CAAA;AACH,OAAA;AAEA,MAAA,OAAA;KACD,CAAA;AACH,GAAA;AAEUE,EAAAA,WAAW,GAAS;AAC5B,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,MAAA,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACpC,KAAA;AACF,GAAA;AAEUC,EAAAA,aAAa,GAAG;AACxB,IAAA,IAAI,CAAC,IAAI,CAACC,YAAY,EAAE,EAAE;MACxB,IAAI,CAAC,QAAQ,IAAI,CAAA;AACjB,MAAA,IAAI,CAAC,QAAQ,GAAGC,SAAS,CAAA;AAC3B,KAAA;AACF,GAAA;EAEAH,gBAAgB,CAACI,KAAc,EAAQ;AACrC,IAAA,IAAI,CAAC,MAAM,GAAGA,KAAK,CAAA;IACnB,IAAI,CAAC,QAAQ,IAAI,CAAA;AACjB,IAAA,IAAI,CAAC,QAAQ,GAAGA,KAAK,CAAEC,MAAgB,IAAK;AAC1C,MAAA,IAAI,OAAOA,MAAM,KAAK,SAAS,EAAE;AAC/B,QAAA,IAAI,CAACC,SAAS,CAACD,MAAM,CAAC,CAAA;AACxB,OAAC,MAAM;QACL,IAAI,CAACZ,QAAQ,EAAE,CAAA;AACjB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAa,SAAS,CAACD,MAAgB,EAAQ;AAChC,IAAA,IAAI,CAAC,OAAO,GAAGA,MAAM,CAAA;AAErB,IAAA,IAAIA,MAAM,EAAE;MACV,IAAI,CAACZ,QAAQ,EAAE,CAAA;AACjB,KAAA;AACF,GAAA;AAEAA,EAAAA,QAAQ,GAAS;AACf,IAAA,IAAI,CAACc,SAAS,CAACC,OAAO,CAAEX,QAAQ,IAAK;AACnCA,MAAAA,QAAQ,EAAE,CAAA;AACZ,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAY,EAAAA,QAAQ,GAAY;AAClB,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;MACrC,OAAO,IAAI,CAAC,OAAO,CAAA;AACrB,KAAA;IAEA,IACE,OAAOC,SAAS,KAAK,WAAW,IAChC,OAAOA,SAAS,CAACC,MAAM,KAAK,WAAW,EACvC;AACA,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,OAAOD,SAAS,CAACC,MAAM,CAAA;AACzB,GAAA;AACF,CAAA;AAEaC,MAAAA,aAAa,GAAG,IAAItB,aAAa;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queriesObserver.esm.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport class QueriesObserver extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n\n constructor(client: QueryClient, queries?: QueryObserverOptions[]) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#result = []\n this.#observers = []\n\n if (queries) {\n this.setQueries(queries)\n }\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = []\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): QueryObserverResult[] {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {\n return this.#findMatchingObservers(queries).map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObservers.find(\n (observer) =>\n observer.options.queryHash === defaultedOptions.queryHash,\n )\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = matchingObservers.map(\n (match) => match.defaultedQueryOptions.queryHash,\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) =>\n !matchedQueryHashes.includes(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["difference","array1","array2","filter","x","indexOf","replaceAt","array","index","value","copy","slice","QueriesObserver","Subscribable","constructor","client","queries","setQueries","onSubscribe","listeners","length","forEach","observer","subscribe","result","onUnsubscribe","destroy","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","hasListeners","getQueries","getCurrentQuery","getObservers","getOptimisticResult","options","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","find","queryHash","matchedQueryHashes","unmatchedQueries","includes","getObserver","currentObserver","o","QueryObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","concat","sort","listener"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queriesObserver.mjs","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport class QueriesObserver extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n\n constructor(client: QueryClient, queries?: QueryObserverOptions[]) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#result = []\n this.#observers = []\n\n if (queries) {\n this.setQueries(queries)\n }\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = []\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): QueryObserverResult[] {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {\n return this.#findMatchingObservers(queries).map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObservers.find(\n (observer) =>\n observer.options.queryHash === defaultedOptions.queryHash,\n )\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = matchingObservers.map(\n (match) => match.defaultedQueryOptions.queryHash,\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) =>\n !matchedQueryHashes.includes(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["difference","array1","array2","filter","x","indexOf","replaceAt","array","index","value","copy","slice","QueriesObserver","Subscribable","constructor","client","queries","setQueries","onSubscribe","listeners","length","forEach","observer","subscribe","result","onUnsubscribe","destroy","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","hasListeners","getQueries","getCurrentQuery","getObservers","getOptimisticResult","options","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","find","queryHash","matchedQueryHashes","unmatchedQueries","includes","getObserver","currentObserver","o","QueryObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","concat","sort","listener"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.esm.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":["Query","Removable","constructor","config","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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"}
|
package/build/lib/query.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.mjs","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":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","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","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","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.esm.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n createStore?: () => QueryStore\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = config.createStore?.() ?? new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.getAll().find((query) => matchQuery(filters, query)) as\n | Query<TQueryFnData, TError, TData>\n | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","createStore","Map","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","exact","matchQuery","findAll","queries","Object","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.mjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n createStore?: () => QueryStore\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = config.createStore?.() ?? new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.getAll().find((query) => matchQuery(filters, query)) as\n | Query<TQueryFnData, TError, TData>\n | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","createStore","Map","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","exact","matchQuery","findAll","queries","Object","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient.esm.js","sources":["../../src/queryClient.ts"],"sourcesContent":["import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashKey,\n noop,\n partialMatchKey,\n hashQueryKeyByOptions,\n functionalUpdate,\n} from './utils'\nimport type {\n QueryClientConfig,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n DefaultError,\n} from './types'\nimport type { QueryState } from './query'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport type { CancelOptions, DefaultedQueryObserverOptions } from './types'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions<any, any, any>\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions<any, any, any, any>\n}\n\n// CLASS\n\nexport class QueryClient {\n #queryCache: QueryCache\n #mutationCache: MutationCache\n #defaultOptions: DefaultOptions\n #queryDefaults: Map<string, QueryDefaults>\n #mutationDefaults: Map<string, MutationDefaults>\n #mountCount: number\n #unsubscribeFocus?: () => void\n #unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.#queryCache = config.queryCache || new QueryCache()\n this.#mutationCache = config.mutationCache || new MutationCache()\n this.#defaultOptions = config.defaultOptions || {}\n this.#queryDefaults = new Map()\n this.#mutationDefaults = new Map()\n this.#mountCount = 0\n }\n\n mount(): void {\n this.#mountCount++\n if (this.#mountCount !== 1) return\n\n this.#unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.#queryCache.onFocus()\n }\n })\n this.#unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.#queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.#mountCount--\n if (this.#mountCount !== 0) return\n\n this.#unsubscribeFocus?.()\n this.#unsubscribeFocus = undefined\n\n this.#unsubscribeOnline?.()\n this.#unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number {\n return this.#queryCache.findAll({ ...filters, fetchStatus: 'fetching' })\n .length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.#mutationCache.findAll({ ...filters, status: 'pending' }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): TQueryFnData | undefined {\n return this.#queryCache.find<TQueryFnData>({ queryKey })?.state.data\n }\n\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const cachedData = this.getQueryData<TData>(options.queryKey)\n\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(options)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.#queryCache.find<TQueryFnData>({ queryKey })\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const defaultedOptions = this.defaultQueryOptions<\n any,\n any,\n unknown,\n any,\n QueryKey\n >({ queryKey })\n\n return this.#queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = DefaultError>(\n queryKey: QueryKey,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.#queryCache.find<TQueryFnData, TError>({ queryKey })?.state\n }\n\n removeQueries(filters?: QueryFilters): void {\n const queryCache = this.#queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void> {\n const queryCache = this.#queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(\n filters: QueryFilters = {},\n cancelOptions: CancelOptions = {},\n ): Promise<void> {\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters: InvalidateQueryFilters = {},\n options: InvalidateOptions = {},\n ): Promise<void> {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries(\n filters: RefetchQueryFilters = {},\n options?: RefetchOptions,\n ): Promise<void> {\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options: FetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<TData> {\n const defaultedOptions = this.defaultQueryOptions(options)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.#queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(options).then(noop).catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<InfiniteData<TData>> {\n options.behavior = infiniteQueryBehavior<TQueryFnData, TError, TData>()\n return this.fetchQuery(options)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<void> {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop)\n }\n\n resumePausedMutations(): Promise<unknown> {\n return this.#mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.#queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.#mutationCache\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.#defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.#defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: Partial<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options,\n })\n }\n\n getQueryDefaults(\n queryKey: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> {\n const defaults = [...this.#queryDefaults.values()]\n\n let result: QueryObserverOptions<any, any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n return result\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: Omit<MutationObserverOptions<any, any, any, any>, 'mutationKey'>,\n ): void {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options,\n })\n }\n\n getMutationDefaults(\n mutationKey: MutationKey,\n ): MutationObserverOptions<any, any, any, any> {\n const defaults = [...this.#mutationDefaults.values()]\n\n let result: MutationObserverOptions<any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n\n return result\n }\n\n defaultQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options?:\n | QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...(options?.queryKey && this.getQueryDefaults(options.queryKey)),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.throwErrors === 'undefined') {\n defaultedOptions.throwErrors = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.#defaultOptions.mutations,\n ...(options?.mutationKey &&\n this.getMutationDefaults(options.mutationKey)),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.#queryCache.clear()\n this.#mutationCache.clear()\n }\n}\n"],"names":["QueryClient","constructor","config","queryCache","QueryCache","mutationCache","MutationCache","defaultOptions","Map","mount","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","onlineManager","isOnline","onOnline","unmount","undefined","isFetching","filters","findAll","fetchStatus","length","isMutating","status","getQueryData","queryKey","find","state","data","ensureQueryData","options","cachedData","Promise","resolve","fetchQuery","getQueriesData","getQueryCache","map","setQueryData","updater","query","prevData","functionalUpdate","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","revert","promises","cancel","all","then","noop","catch","invalidateQueries","invalidate","refetchType","filter","isDisabled","fetch","cancelRefetch","promise","throwOnError","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","set","hashKey","getQueryDefaults","defaults","values","result","queryDefault","partialMatchKey","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","throwErrors","suspense","defaultMutationOptions","mutations","clear"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient.mjs","sources":["../../src/queryClient.ts"],"sourcesContent":["import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashKey,\n noop,\n partialMatchKey,\n hashQueryKeyByOptions,\n functionalUpdate,\n} from './utils'\nimport type {\n QueryClientConfig,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n DefaultError,\n} from './types'\nimport type { QueryState } from './query'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport type { CancelOptions, DefaultedQueryObserverOptions } from './types'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions<any, any, any>\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions<any, any, any, any>\n}\n\n// CLASS\n\nexport class QueryClient {\n #queryCache: QueryCache\n #mutationCache: MutationCache\n #defaultOptions: DefaultOptions\n #queryDefaults: Map<string, QueryDefaults>\n #mutationDefaults: Map<string, MutationDefaults>\n #mountCount: number\n #unsubscribeFocus?: () => void\n #unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.#queryCache = config.queryCache || new QueryCache()\n this.#mutationCache = config.mutationCache || new MutationCache()\n this.#defaultOptions = config.defaultOptions || {}\n this.#queryDefaults = new Map()\n this.#mutationDefaults = new Map()\n this.#mountCount = 0\n }\n\n mount(): void {\n this.#mountCount++\n if (this.#mountCount !== 1) return\n\n this.#unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.#queryCache.onFocus()\n }\n })\n this.#unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.#queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.#mountCount--\n if (this.#mountCount !== 0) return\n\n this.#unsubscribeFocus?.()\n this.#unsubscribeFocus = undefined\n\n this.#unsubscribeOnline?.()\n this.#unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number {\n return this.#queryCache.findAll({ ...filters, fetchStatus: 'fetching' })\n .length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.#mutationCache.findAll({ ...filters, status: 'pending' }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): TQueryFnData | undefined {\n return this.#queryCache.find<TQueryFnData>({ queryKey })?.state.data\n }\n\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const cachedData = this.getQueryData<TData>(options.queryKey)\n\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(options)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData<TQueryFnData>(\n queryKey: QueryKey,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.#queryCache.find<TQueryFnData>({ queryKey })\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const defaultedOptions = this.defaultQueryOptions<\n any,\n any,\n unknown,\n any,\n QueryKey\n >({ queryKey })\n\n return this.#queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = DefaultError>(\n queryKey: QueryKey,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.#queryCache.find<TQueryFnData, TError>({ queryKey })?.state\n }\n\n removeQueries(filters?: QueryFilters): void {\n const queryCache = this.#queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void> {\n const queryCache = this.#queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(\n filters: QueryFilters = {},\n cancelOptions: CancelOptions = {},\n ): Promise<void> {\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters: InvalidateQueryFilters = {},\n options: InvalidateOptions = {},\n ): Promise<void> {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries(\n filters: RefetchQueryFilters = {},\n options?: RefetchOptions,\n ): Promise<void> {\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options: FetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<TData> {\n const defaultedOptions = this.defaultQueryOptions(options)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.#queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(options).then(noop).catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<InfiniteData<TData>> {\n options.behavior = infiniteQueryBehavior<TQueryFnData, TError, TData>()\n return this.fetchQuery(options)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<void> {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop)\n }\n\n resumePausedMutations(): Promise<unknown> {\n return this.#mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.#queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.#mutationCache\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.#defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.#defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: Partial<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options,\n })\n }\n\n getQueryDefaults(\n queryKey: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> {\n const defaults = [...this.#queryDefaults.values()]\n\n let result: QueryObserverOptions<any, any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n return result\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: Omit<MutationObserverOptions<any, any, any, any>, 'mutationKey'>,\n ): void {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options,\n })\n }\n\n getMutationDefaults(\n mutationKey: MutationKey,\n ): MutationObserverOptions<any, any, any, any> {\n const defaults = [...this.#mutationDefaults.values()]\n\n let result: MutationObserverOptions<any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n\n return result\n }\n\n defaultQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options?:\n | QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...(options?.queryKey && this.getQueryDefaults(options.queryKey)),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.throwErrors === 'undefined') {\n defaultedOptions.throwErrors = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.#defaultOptions.mutations,\n ...(options?.mutationKey &&\n this.getMutationDefaults(options.mutationKey)),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.#queryCache.clear()\n this.#mutationCache.clear()\n }\n}\n"],"names":["QueryClient","constructor","config","queryCache","QueryCache","mutationCache","MutationCache","defaultOptions","Map","mount","focusManager","subscribe","isFocused","resumePausedMutations","onFocus","onlineManager","isOnline","onOnline","unmount","undefined","isFetching","filters","findAll","fetchStatus","length","isMutating","status","getQueryData","queryKey","find","state","data","ensureQueryData","options","cachedData","Promise","resolve","fetchQuery","getQueriesData","getQueryCache","map","setQueryData","updater","query","prevData","functionalUpdate","defaultedOptions","defaultQueryOptions","build","setData","manual","setQueriesData","notifyManager","batch","getQueryState","removeQueries","forEach","remove","resetQueries","refetchFilters","type","reset","refetchQueries","cancelQueries","cancelOptions","revert","promises","cancel","all","then","noop","catch","invalidateQueries","invalidate","refetchType","filter","isDisabled","fetch","cancelRefetch","promise","throwOnError","retry","isStaleByTime","staleTime","prefetchQuery","fetchInfiniteQuery","behavior","infiniteQueryBehavior","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","set","hashKey","getQueryDefaults","defaults","values","result","queryDefault","partialMatchKey","setMutationDefaults","mutationKey","getMutationDefaults","_defaulted","queries","queryHash","hashQueryKeyByOptions","refetchOnReconnect","networkMode","throwErrors","suspense","defaultMutationOptions","mutations","clear"],"mappings":"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"}
|