@tanstack/query-core
Advanced tools
Comparing version 5.29.0 to 5.31.0
@@ -1,2 +0,2 @@ | ||
import { p as Mutation, o as Query, K as QueryOptions, ax as MutationOptions, b as QueryClient, at as MutationKey, q as MutationState, av as MutationMeta, t as QueryKey, n as QueryState, F as QueryMeta } from './queryClient-K0zFyarY.js'; | ||
import { p as Mutation, o as Query, K as QueryOptions, ay as MutationOptions, b as QueryClient, at as MutationKey, q as MutationState, aw as MutationMeta, av as MutationScope, t as QueryKey, n as QueryState, F as QueryMeta } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
@@ -19,2 +19,3 @@ import './subscribable.js'; | ||
meta?: MutationMeta; | ||
scope?: MutationScope; | ||
} | ||
@@ -21,0 +22,0 @@ interface DehydratedQuery { |
@@ -8,2 +8,3 @@ import "./chunk-2HYBKCYP.js"; | ||
state: mutation.state, | ||
...mutation.options.scope && { scope: mutation.options.scope }, | ||
...mutation.meta && { meta: mutation.meta } | ||
@@ -43,3 +44,3 @@ }; | ||
const queries = dehydratedState.queries || []; | ||
mutations.forEach((dehydratedMutation) => { | ||
mutations.forEach(({ state, ...mutationOptions }) => { | ||
var _a; | ||
@@ -50,6 +51,5 @@ mutationCache.build( | ||
...(_a = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _a.mutations, | ||
mutationKey: dehydratedMutation.mutationKey, | ||
meta: dehydratedMutation.meta | ||
...mutationOptions | ||
}, | ||
dehydratedMutation.state | ||
state | ||
); | ||
@@ -56,0 +56,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
export { aJ as CancelOptions, C as CancelledError, v as DataTag, D as DefaultError, aI as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aA as MutateFunction, az as MutateOptions, p as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aw as MutationFunction, at as MutationKey, av as MutationMeta, e as MutationObserver, aB as MutationObserverBaseResult, aE as MutationObserverErrorResult, aC as MutationObserverIdleResult, aD as MutationObserverLoadingResult, ay as MutationObserverOptions, aG as MutationObserverResult, aF as MutationObserverSuccessResult, ax as MutationOptions, q as MutationState, au as MutationStatus, H as NetworkMode, N as NoInfer, aM as NotifyEvent, aL as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, o as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aH as QueryClientConfig, j as QueryFilters, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, c as QueryObserver, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, n as QueryState, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aK as SetDataOptions, S as SkipToken, V as ThrowOnError, U as Updater, X as WithRequired, u as dataTagSymbol, h as hashKey, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './queryClient-K0zFyarY.js'; | ||
export { aK as CancelOptions, C as CancelledError, v as DataTag, D as DefaultError, aJ as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aB as MutateFunction, aA as MutateOptions, p as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, ax as MutationFunction, at as MutationKey, aw as MutationMeta, e as MutationObserver, aC as MutationObserverBaseResult, aF as MutationObserverErrorResult, aD as MutationObserverIdleResult, aE as MutationObserverLoadingResult, az as MutationObserverOptions, aH as MutationObserverResult, aG as MutationObserverSuccessResult, ay as MutationOptions, av as MutationScope, q as MutationState, au as MutationStatus, H as NetworkMode, N as NoInfer, aN as NotifyEvent, aM as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, o as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aI as QueryClientConfig, j as QueryFilters, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, c as QueryObserver, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, n as QueryState, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aL as SetDataOptions, S as SkipToken, V as ThrowOnError, U as Updater, X as WithRequired, u as dataTagSymbol, h as hashKey, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './types-EkjjZlVm.js'; | ||
export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.js'; | ||
@@ -3,0 +3,0 @@ export { InfiniteQueryObserver } from './infiniteQueryObserver.js'; |
@@ -1,2 +0,2 @@ | ||
import { aN as QueryBehavior, E as InfiniteData, T as InfiniteQueryPageParamsOptions } from './queryClient-K0zFyarY.js'; | ||
import { aO as QueryBehavior, E as InfiniteData, T as InfiniteQueryPageParamsOptions } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
@@ -1,2 +0,2 @@ | ||
import { D as DefaultError, E as InfiniteData, t as QueryKey, c as QueryObserver, as as InfiniteQueryObserverResult, aO as ObserverFetchOptions, b as QueryClient, _ as InfiniteQueryObserverOptions, aP as NotifyOptions, $ as DefaultedInfiniteQueryObserverOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, o as Query } from './queryClient-K0zFyarY.js'; | ||
import { D as DefaultError, E as InfiniteData, t as QueryKey, c as QueryObserver, as as InfiniteQueryObserverResult, aP as ObserverFetchOptions, b as QueryClient, _ as InfiniteQueryObserverOptions, aQ as NotifyOptions, $ as DefaultedInfiniteQueryObserverOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, o as Query } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
import './removable.js'; | ||
export { b2 as Action, p as Mutation, q as MutationState, b3 as getDefaultState } from './queryClient-K0zFyarY.js'; | ||
export { bb as Action, p as Mutation, q as MutationState, bc as getDefaultState } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; |
@@ -11,4 +11,4 @@ import { | ||
import { Removable } from "./removable.js"; | ||
import { canFetch, createRetryer } from "./retryer.js"; | ||
var _observers, _defaultOptions, _mutationCache, _retryer, _dispatch, dispatch_fn; | ||
import { createRetryer } from "./retryer.js"; | ||
var _observers, _mutationCache, _retryer, _dispatch, dispatch_fn; | ||
var Mutation = class extends Removable { | ||
@@ -19,7 +19,5 @@ constructor(config) { | ||
__privateAdd(this, _observers, void 0); | ||
__privateAdd(this, _defaultOptions, void 0); | ||
__privateAdd(this, _mutationCache, void 0); | ||
__privateAdd(this, _retryer, void 0); | ||
this.mutationId = config.mutationId; | ||
__privateSet(this, _defaultOptions, config.defaultOptions); | ||
__privateSet(this, _mutationCache, config.mutationCache); | ||
@@ -32,3 +30,3 @@ __privateSet(this, _observers, []); | ||
setOptions(options) { | ||
this.options = { ...__privateGet(this, _defaultOptions), ...options }; | ||
this.options = options; | ||
this.updateGcTime(this.options.gcTime); | ||
@@ -75,29 +73,28 @@ } | ||
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t; | ||
const executeMutation = () => { | ||
__privateSet(this, _retryer, createRetryer({ | ||
fn: () => { | ||
if (!this.options.mutationFn) { | ||
return Promise.reject(new Error("No mutationFn found")); | ||
} | ||
return this.options.mutationFn(variables); | ||
}, | ||
onFail: (failureCount, error) => { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "failed", failureCount, error }); | ||
}, | ||
onPause: () => { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "pause" }); | ||
}, | ||
onContinue: () => { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "continue" }); | ||
}, | ||
retry: this.options.retry ?? 0, | ||
retryDelay: this.options.retryDelay, | ||
networkMode: this.options.networkMode | ||
})); | ||
return __privateGet(this, _retryer).promise; | ||
}; | ||
__privateSet(this, _retryer, createRetryer({ | ||
fn: () => { | ||
if (!this.options.mutationFn) { | ||
return Promise.reject(new Error("No mutationFn found")); | ||
} | ||
return this.options.mutationFn(variables); | ||
}, | ||
onFail: (failureCount, error) => { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "failed", failureCount, error }); | ||
}, | ||
onPause: () => { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "pause" }); | ||
}, | ||
onContinue: () => { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "continue" }); | ||
}, | ||
retry: this.options.retry ?? 0, | ||
retryDelay: this.options.retryDelay, | ||
networkMode: this.options.networkMode, | ||
canRun: () => __privateGet(this, _mutationCache).canRun(this) | ||
})); | ||
const restored = this.state.status === "pending"; | ||
const isPaused = !__privateGet(this, _retryer).canStart(); | ||
try { | ||
if (!restored) { | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "pending", variables }); | ||
__privateMethod(this, _dispatch, dispatch_fn).call(this, { type: "pending", variables, isPaused }); | ||
await ((_b = (_a = __privateGet(this, _mutationCache).config).onMutate) == null ? void 0 : _b.call( | ||
@@ -113,7 +110,8 @@ _a, | ||
context, | ||
variables | ||
variables, | ||
isPaused | ||
}); | ||
} | ||
} | ||
const data = await executeMutation(); | ||
const data = await __privateGet(this, _retryer).start(); | ||
await ((_f = (_e = __privateGet(this, _mutationCache).config).onSuccess) == null ? void 0 : _f.call( | ||
@@ -172,2 +170,4 @@ _e, | ||
} | ||
} finally { | ||
__privateGet(this, _mutationCache).runNext(this); | ||
} | ||
@@ -177,3 +177,2 @@ } | ||
_observers = new WeakMap(); | ||
_defaultOptions = new WeakMap(); | ||
_mutationCache = new WeakMap(); | ||
@@ -209,3 +208,3 @@ _retryer = new WeakMap(); | ||
error: null, | ||
isPaused: !canFetch(this.options.networkMode), | ||
isPaused: action.isPaused, | ||
status: "pending", | ||
@@ -212,0 +211,0 @@ variables: action.variables, |
@@ -1,3 +0,3 @@ | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './queryClient-K0zFyarY.js'; | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
@@ -13,3 +13,3 @@ import { | ||
import { Subscribable } from "./subscribable.js"; | ||
var _mutations, _mutationId, _resuming; | ||
var _mutations, _mutationId; | ||
var MutationCache = class extends Subscribable { | ||
@@ -21,5 +21,4 @@ constructor(config = {}) { | ||
__privateAdd(this, _mutationId, void 0); | ||
__privateAdd(this, _resuming, void 0); | ||
__privateSet(this, _mutations, []); | ||
__privateSet(this, _mutationId, 0); | ||
__privateSet(this, _mutations, /* @__PURE__ */ new Map()); | ||
__privateSet(this, _mutationId, Date.now()); | ||
} | ||
@@ -37,12 +36,36 @@ build(client, options, state) { | ||
add(mutation) { | ||
__privateGet(this, _mutations).push(mutation); | ||
const scope = scopeFor(mutation); | ||
const mutations = __privateGet(this, _mutations).get(scope) ?? []; | ||
mutations.push(mutation); | ||
__privateGet(this, _mutations).set(scope, mutations); | ||
this.notify({ type: "added", mutation }); | ||
} | ||
remove(mutation) { | ||
__privateSet(this, _mutations, __privateGet(this, _mutations).filter((x) => x !== mutation)); | ||
var _a; | ||
const scope = scopeFor(mutation); | ||
if (__privateGet(this, _mutations).has(scope)) { | ||
const mutations = (_a = __privateGet(this, _mutations).get(scope)) == null ? void 0 : _a.filter((x) => x !== mutation); | ||
if (mutations) { | ||
if (mutations.length === 0) { | ||
__privateGet(this, _mutations).delete(scope); | ||
} else { | ||
__privateGet(this, _mutations).set(scope, mutations); | ||
} | ||
} | ||
} | ||
this.notify({ type: "removed", mutation }); | ||
} | ||
canRun(mutation) { | ||
var _a; | ||
const firstPendingMutation = (_a = __privateGet(this, _mutations).get(scopeFor(mutation))) == null ? void 0 : _a.find((m) => m.state.status === "pending"); | ||
return !firstPendingMutation || firstPendingMutation === mutation; | ||
} | ||
runNext(mutation) { | ||
var _a; | ||
const foundMutation = (_a = __privateGet(this, _mutations).get(scopeFor(mutation))) == null ? void 0 : _a.find((m) => m !== mutation && m.state.isPaused); | ||
return (foundMutation == null ? void 0 : foundMutation.continue()) ?? Promise.resolve(); | ||
} | ||
clear() { | ||
notifyManager.batch(() => { | ||
__privateGet(this, _mutations).forEach((mutation) => { | ||
this.getAll().forEach((mutation) => { | ||
this.remove(mutation); | ||
@@ -53,7 +76,7 @@ }); | ||
getAll() { | ||
return __privateGet(this, _mutations); | ||
return [...__privateGet(this, _mutations).values()].flat(); | ||
} | ||
find(filters) { | ||
const defaultedFilters = { exact: true, ...filters }; | ||
return __privateGet(this, _mutations).find( | ||
return this.getAll().find( | ||
(mutation) => matchMutation(defaultedFilters, mutation) | ||
@@ -63,5 +86,3 @@ ); | ||
findAll(filters = {}) { | ||
return __privateGet(this, _mutations).filter( | ||
(mutation) => matchMutation(filters, mutation) | ||
); | ||
return this.getAll().filter((mutation) => matchMutation(filters, mutation)); | ||
} | ||
@@ -76,14 +97,8 @@ notify(event) { | ||
resumePausedMutations() { | ||
__privateSet(this, _resuming, (__privateGet(this, _resuming) ?? Promise.resolve()).then(() => { | ||
const pausedMutations = __privateGet(this, _mutations).filter((x) => x.state.isPaused); | ||
return notifyManager.batch( | ||
() => pausedMutations.reduce( | ||
(promise, mutation) => promise.then(() => mutation.continue().catch(noop)), | ||
Promise.resolve() | ||
) | ||
); | ||
}).then(() => { | ||
__privateSet(this, _resuming, void 0); | ||
})); | ||
return __privateGet(this, _resuming); | ||
const pausedMutations = this.getAll().filter((x) => x.state.isPaused); | ||
return notifyManager.batch( | ||
() => Promise.all( | ||
pausedMutations.map((mutation) => mutation.continue().catch(noop)) | ||
) | ||
); | ||
} | ||
@@ -93,3 +108,6 @@ }; | ||
_mutationId = new WeakMap(); | ||
_resuming = new WeakMap(); | ||
function scopeFor(mutation) { | ||
var _a; | ||
return ((_a = mutation.options.scope) == null ? void 0 : _a.id) ?? String(mutation.mutationId); | ||
} | ||
export { | ||
@@ -96,0 +114,0 @@ MutationCache |
import './subscribable.js'; | ||
export { e as MutationObserver } from './queryClient-K0zFyarY.js'; | ||
export { e as MutationObserver } from './types-EkjjZlVm.js'; | ||
import './removable.js'; |
@@ -1,2 +0,2 @@ | ||
import { ak as QueryObserverResult, b as QueryClient, W as QueryObserverOptions, aP as NotifyOptions, o as Query, t as QueryKey, c as QueryObserver } from './queryClient-K0zFyarY.js'; | ||
import { ak as QueryObserverResult, b as QueryClient, W as QueryObserverOptions, aQ as NotifyOptions, o as Query, t as QueryKey, c as QueryObserver } from './types-EkjjZlVm.js'; | ||
import { Subscribable } from './subscribable.js'; | ||
@@ -3,0 +3,0 @@ import './removable.js'; |
import './removable.js'; | ||
export { bd as Action, b9 as FetchContext, ba as FetchDirection, bb as FetchMeta, bc as FetchOptions, o as Query, aN as QueryBehavior, n as QueryState, be as SetStateOptions, bf as fetchState } from './queryClient-K0zFyarY.js'; | ||
export { aV as Action, aR as FetchContext, aS as FetchDirection, aT as FetchMeta, aU as FetchOptions, o as Query, aO as QueryBehavior, n as QueryState, aW as SetStateOptions, aX as fetchState } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; |
@@ -287,5 +287,6 @@ import { | ||
retryDelay: context.options.retryDelay, | ||
networkMode: context.options.networkMode | ||
networkMode: context.options.networkMode, | ||
canRun: () => true | ||
})); | ||
return __privateGet(this, _retryer).promise; | ||
return __privateGet(this, _retryer).start(); | ||
} | ||
@@ -292,0 +293,0 @@ }; |
@@ -1,3 +0,3 @@ | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, bg as QueryStore } from './queryClient-K0zFyarY.js'; | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, ba as QueryStore } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { b as QueryClient } from './queryClient-K0zFyarY.js'; | ||
export { b as QueryClient } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
import './subscribable.js'; | ||
export { aP as NotifyOptions, aO as ObserverFetchOptions, c as QueryObserver } from './queryClient-K0zFyarY.js'; | ||
export { aQ as NotifyOptions, aP as ObserverFetchOptions, c as QueryObserver } from './types-EkjjZlVm.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { C as CancelledError, b6 as RetryDelayValue, b5 as RetryValue, b4 as Retryer, b7 as canFetch, b8 as createRetryer, l as isCancelledError } from './queryClient-K0zFyarY.js'; | ||
export { C as CancelledError, bf as RetryDelayValue, be as RetryValue, bd as Retryer, bg as canFetch, bh as createRetryer, l as isCancelledError } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -46,3 +46,4 @@ import "./chunk-2HYBKCYP.js"; | ||
}; | ||
const shouldPause = () => !focusManager.isFocused() || config.networkMode !== "always" && !onlineManager.isOnline(); | ||
const canContinue = () => focusManager.isFocused() && (config.networkMode === "always" || onlineManager.isOnline()) && config.canRun(); | ||
const canStart = () => canFetch(config.networkMode) && config.canRun(); | ||
const resolve = (value) => { | ||
@@ -70,7 +71,5 @@ var _a; | ||
continueFn = (value) => { | ||
const canContinue = isResolved || !shouldPause(); | ||
if (canContinue) { | ||
if (isResolved || canContinue()) { | ||
continueResolve(value); | ||
} | ||
return canContinue; | ||
}; | ||
@@ -112,6 +111,3 @@ (_a = config.onPause) == null ? void 0 : _a.call(config); | ||
sleep(delay).then(() => { | ||
if (shouldPause()) { | ||
return pause(); | ||
} | ||
return; | ||
return canContinue() ? void 0 : pause(); | ||
}).then(() => { | ||
@@ -126,7 +122,2 @@ if (isRetryCancelled) { | ||
}; | ||
if (canFetch(config.networkMode)) { | ||
run(); | ||
} else { | ||
pause().then(run); | ||
} | ||
return { | ||
@@ -136,7 +127,16 @@ promise, | ||
continue: () => { | ||
const didContinue = continueFn == null ? void 0 : continueFn(); | ||
return didContinue ? promise : Promise.resolve(); | ||
continueFn == null ? void 0 : continueFn(); | ||
return promise; | ||
}, | ||
cancelRetry, | ||
continueRetry | ||
continueRetry, | ||
canStart, | ||
start: () => { | ||
if (canStart()) { | ||
run(); | ||
} else { | ||
pause().then(run); | ||
} | ||
return promise; | ||
} | ||
}; | ||
@@ -143,0 +143,0 @@ } |
@@ -1,3 +0,3 @@ | ||
export { aJ as CancelOptions, v as DataTag, D as DefaultError, aI as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aA as MutateFunction, az as MutateOptions, aw as MutationFunction, at as MutationKey, av as MutationMeta, aB as MutationObserverBaseResult, aE as MutationObserverErrorResult, aC as MutationObserverIdleResult, aD as MutationObserverLoadingResult, ay as MutationObserverOptions, aG as MutationObserverResult, aF as MutationObserverSuccessResult, ax as MutationOptions, au as MutationStatus, H as NetworkMode, N as NoInfer, aM as NotifyEvent, aL as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, aH as QueryClientConfig, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aK as SetDataOptions, V as ThrowOnError, X as WithRequired, u as dataTagSymbol } from './queryClient-K0zFyarY.js'; | ||
export { aK as CancelOptions, v as DataTag, D as DefaultError, aJ as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aB as MutateFunction, aA as MutateOptions, ax as MutationFunction, at as MutationKey, aw as MutationMeta, aC as MutationObserverBaseResult, aF as MutationObserverErrorResult, aD as MutationObserverIdleResult, aE as MutationObserverLoadingResult, az as MutationObserverOptions, aH as MutationObserverResult, aG as MutationObserverSuccessResult, ay as MutationOptions, av as MutationScope, au as MutationStatus, H as NetworkMode, N as NoInfer, aN as NotifyEvent, aM as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, aI as QueryClientConfig, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aL as SetDataOptions, V as ThrowOnError, X as WithRequired, u as dataTagSymbol } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { g as MutationFilters, j as QueryFilters, aQ as QueryTypeFilter, S as SkipToken, U as Updater, b0 as addToEnd, b1 as addToStart, aS as functionalUpdate, h as hashKey, aV as hashQueryKeyByOptions, aY as isPlainArray, aZ as isPlainObject, i as isServer, aT as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, aR as noop, aW as partialMatchKey, a$ as replaceData, r as replaceEqualDeep, aX as shallowEqualObjects, s as skipToken, a_ as sleep, aU as timeUntilStale } from './queryClient-K0zFyarY.js'; | ||
export { g as MutationFilters, j as QueryFilters, aY as QueryTypeFilter, S as SkipToken, U as Updater, b8 as addToEnd, b9 as addToStart, a_ as functionalUpdate, h as hashKey, b1 as hashQueryKeyByOptions, b4 as isPlainArray, b5 as isPlainObject, i as isServer, a$ as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, aZ as noop, b2 as partialMatchKey, b7 as replaceData, r as replaceEqualDeep, b3 as shallowEqualObjects, s as skipToken, b6 as sleep, b0 as timeUntilStale } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,2 +0,2 @@ | ||
import { p as Mutation, o as Query, K as QueryOptions, ax as MutationOptions, b as QueryClient, at as MutationKey, q as MutationState, av as MutationMeta, t as QueryKey, n as QueryState, F as QueryMeta } from './queryClient-K0zFyarY.js'; | ||
import { p as Mutation, o as Query, K as QueryOptions, ay as MutationOptions, b as QueryClient, at as MutationKey, q as MutationState, aw as MutationMeta, av as MutationScope, t as QueryKey, n as QueryState, F as QueryMeta } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
@@ -19,2 +19,3 @@ import './subscribable.js'; | ||
meta?: MutationMeta; | ||
scope?: MutationScope; | ||
} | ||
@@ -21,0 +22,0 @@ interface DehydratedQuery { |
@@ -6,2 +6,3 @@ // src/hydration.ts | ||
state: mutation.state, | ||
...mutation.options.scope && { scope: mutation.options.scope }, | ||
...mutation.meta && { meta: mutation.meta } | ||
@@ -41,3 +42,3 @@ }; | ||
const queries = dehydratedState.queries || []; | ||
mutations.forEach((dehydratedMutation) => { | ||
mutations.forEach(({ state, ...mutationOptions }) => { | ||
mutationCache.build( | ||
@@ -47,6 +48,5 @@ client, | ||
...options?.defaultOptions?.mutations, | ||
mutationKey: dehydratedMutation.mutationKey, | ||
meta: dehydratedMutation.meta | ||
...mutationOptions | ||
}, | ||
dehydratedMutation.state | ||
state | ||
); | ||
@@ -53,0 +53,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
export { aJ as CancelOptions, C as CancelledError, v as DataTag, D as DefaultError, aI as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aA as MutateFunction, az as MutateOptions, p as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aw as MutationFunction, at as MutationKey, av as MutationMeta, e as MutationObserver, aB as MutationObserverBaseResult, aE as MutationObserverErrorResult, aC as MutationObserverIdleResult, aD as MutationObserverLoadingResult, ay as MutationObserverOptions, aG as MutationObserverResult, aF as MutationObserverSuccessResult, ax as MutationOptions, q as MutationState, au as MutationStatus, H as NetworkMode, N as NoInfer, aM as NotifyEvent, aL as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, o as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aH as QueryClientConfig, j as QueryFilters, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, c as QueryObserver, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, n as QueryState, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aK as SetDataOptions, S as SkipToken, V as ThrowOnError, U as Updater, X as WithRequired, u as dataTagSymbol, h as hashKey, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './queryClient-K0zFyarY.js'; | ||
export { aK as CancelOptions, C as CancelledError, v as DataTag, D as DefaultError, aJ as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aB as MutateFunction, aA as MutateOptions, p as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, ax as MutationFunction, at as MutationKey, aw as MutationMeta, e as MutationObserver, aC as MutationObserverBaseResult, aF as MutationObserverErrorResult, aD as MutationObserverIdleResult, aE as MutationObserverLoadingResult, az as MutationObserverOptions, aH as MutationObserverResult, aG as MutationObserverSuccessResult, ay as MutationOptions, av as MutationScope, q as MutationState, au as MutationStatus, H as NetworkMode, N as NoInfer, aN as NotifyEvent, aM as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, o as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aI as QueryClientConfig, j as QueryFilters, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, c as QueryObserver, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, n as QueryState, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aL as SetDataOptions, S as SkipToken, V as ThrowOnError, U as Updater, X as WithRequired, u as dataTagSymbol, h as hashKey, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './types-EkjjZlVm.js'; | ||
export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.js'; | ||
@@ -3,0 +3,0 @@ export { InfiniteQueryObserver } from './infiniteQueryObserver.js'; |
@@ -1,2 +0,2 @@ | ||
import { aN as QueryBehavior, E as InfiniteData, T as InfiniteQueryPageParamsOptions } from './queryClient-K0zFyarY.js'; | ||
import { aO as QueryBehavior, E as InfiniteData, T as InfiniteQueryPageParamsOptions } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
@@ -1,2 +0,2 @@ | ||
import { D as DefaultError, E as InfiniteData, t as QueryKey, c as QueryObserver, as as InfiniteQueryObserverResult, aO as ObserverFetchOptions, b as QueryClient, _ as InfiniteQueryObserverOptions, aP as NotifyOptions, $ as DefaultedInfiniteQueryObserverOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, o as Query } from './queryClient-K0zFyarY.js'; | ||
import { D as DefaultError, E as InfiniteData, t as QueryKey, c as QueryObserver, as as InfiniteQueryObserverResult, aP as ObserverFetchOptions, b as QueryClient, _ as InfiniteQueryObserverOptions, aQ as NotifyOptions, $ as DefaultedInfiniteQueryObserverOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, o as Query } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
import './removable.js'; | ||
export { b2 as Action, p as Mutation, q as MutationState, b3 as getDefaultState } from './queryClient-K0zFyarY.js'; | ||
export { bb as Action, p as Mutation, q as MutationState, bc as getDefaultState } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; |
// src/mutation.ts | ||
import { notifyManager } from "./notifyManager.js"; | ||
import { Removable } from "./removable.js"; | ||
import { canFetch, createRetryer } from "./retryer.js"; | ||
import { createRetryer } from "./retryer.js"; | ||
var Mutation = class extends Removable { | ||
#observers; | ||
#defaultOptions; | ||
#mutationCache; | ||
@@ -13,3 +12,2 @@ #retryer; | ||
this.mutationId = config.mutationId; | ||
this.#defaultOptions = config.defaultOptions; | ||
this.#mutationCache = config.mutationCache; | ||
@@ -22,3 +20,3 @@ this.#observers = []; | ||
setOptions(options) { | ||
this.options = { ...this.#defaultOptions, ...options }; | ||
this.options = options; | ||
this.updateGcTime(this.options.gcTime); | ||
@@ -63,29 +61,28 @@ } | ||
async execute(variables) { | ||
const executeMutation = () => { | ||
this.#retryer = createRetryer({ | ||
fn: () => { | ||
if (!this.options.mutationFn) { | ||
return Promise.reject(new Error("No mutationFn found")); | ||
} | ||
return this.options.mutationFn(variables); | ||
}, | ||
onFail: (failureCount, error) => { | ||
this.#dispatch({ type: "failed", failureCount, error }); | ||
}, | ||
onPause: () => { | ||
this.#dispatch({ type: "pause" }); | ||
}, | ||
onContinue: () => { | ||
this.#dispatch({ type: "continue" }); | ||
}, | ||
retry: this.options.retry ?? 0, | ||
retryDelay: this.options.retryDelay, | ||
networkMode: this.options.networkMode | ||
}); | ||
return this.#retryer.promise; | ||
}; | ||
this.#retryer = createRetryer({ | ||
fn: () => { | ||
if (!this.options.mutationFn) { | ||
return Promise.reject(new Error("No mutationFn found")); | ||
} | ||
return this.options.mutationFn(variables); | ||
}, | ||
onFail: (failureCount, error) => { | ||
this.#dispatch({ type: "failed", failureCount, error }); | ||
}, | ||
onPause: () => { | ||
this.#dispatch({ type: "pause" }); | ||
}, | ||
onContinue: () => { | ||
this.#dispatch({ type: "continue" }); | ||
}, | ||
retry: this.options.retry ?? 0, | ||
retryDelay: this.options.retryDelay, | ||
networkMode: this.options.networkMode, | ||
canRun: () => this.#mutationCache.canRun(this) | ||
}); | ||
const restored = this.state.status === "pending"; | ||
const isPaused = !this.#retryer.canStart(); | ||
try { | ||
if (!restored) { | ||
this.#dispatch({ type: "pending", variables }); | ||
this.#dispatch({ type: "pending", variables, isPaused }); | ||
await this.#mutationCache.config.onMutate?.( | ||
@@ -100,7 +97,8 @@ variables, | ||
context, | ||
variables | ||
variables, | ||
isPaused | ||
}); | ||
} | ||
} | ||
const data = await executeMutation(); | ||
const data = await this.#retryer.start(); | ||
await this.#mutationCache.config.onSuccess?.( | ||
@@ -153,2 +151,4 @@ data, | ||
} | ||
} finally { | ||
this.#mutationCache.runNext(this); | ||
} | ||
@@ -183,3 +183,3 @@ } | ||
error: null, | ||
isPaused: !canFetch(this.options.networkMode), | ||
isPaused: action.isPaused, | ||
status: "pending", | ||
@@ -186,0 +186,0 @@ variables: action.variables, |
@@ -1,3 +0,3 @@ | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './queryClient-K0zFyarY.js'; | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
@@ -10,8 +10,7 @@ // src/mutationCache.ts | ||
this.config = config; | ||
this.#mutations = []; | ||
this.#mutationId = 0; | ||
this.#mutations = /* @__PURE__ */ new Map(); | ||
this.#mutationId = Date.now(); | ||
} | ||
#mutations; | ||
#mutationId; | ||
#resuming; | ||
build(client, options, state) { | ||
@@ -28,12 +27,33 @@ const mutation = new Mutation({ | ||
add(mutation) { | ||
this.#mutations.push(mutation); | ||
const scope = scopeFor(mutation); | ||
const mutations = this.#mutations.get(scope) ?? []; | ||
mutations.push(mutation); | ||
this.#mutations.set(scope, mutations); | ||
this.notify({ type: "added", mutation }); | ||
} | ||
remove(mutation) { | ||
this.#mutations = this.#mutations.filter((x) => x !== mutation); | ||
const scope = scopeFor(mutation); | ||
if (this.#mutations.has(scope)) { | ||
const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation); | ||
if (mutations) { | ||
if (mutations.length === 0) { | ||
this.#mutations.delete(scope); | ||
} else { | ||
this.#mutations.set(scope, mutations); | ||
} | ||
} | ||
} | ||
this.notify({ type: "removed", mutation }); | ||
} | ||
canRun(mutation) { | ||
const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === "pending"); | ||
return !firstPendingMutation || firstPendingMutation === mutation; | ||
} | ||
runNext(mutation) { | ||
const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused); | ||
return foundMutation?.continue() ?? Promise.resolve(); | ||
} | ||
clear() { | ||
notifyManager.batch(() => { | ||
this.#mutations.forEach((mutation) => { | ||
this.getAll().forEach((mutation) => { | ||
this.remove(mutation); | ||
@@ -44,7 +64,7 @@ }); | ||
getAll() { | ||
return this.#mutations; | ||
return [...this.#mutations.values()].flat(); | ||
} | ||
find(filters) { | ||
const defaultedFilters = { exact: true, ...filters }; | ||
return this.#mutations.find( | ||
return this.getAll().find( | ||
(mutation) => matchMutation(defaultedFilters, mutation) | ||
@@ -54,5 +74,3 @@ ); | ||
findAll(filters = {}) { | ||
return this.#mutations.filter( | ||
(mutation) => matchMutation(filters, mutation) | ||
); | ||
return this.getAll().filter((mutation) => matchMutation(filters, mutation)); | ||
} | ||
@@ -67,16 +85,13 @@ notify(event) { | ||
resumePausedMutations() { | ||
this.#resuming = (this.#resuming ?? Promise.resolve()).then(() => { | ||
const pausedMutations = this.#mutations.filter((x) => x.state.isPaused); | ||
return notifyManager.batch( | ||
() => pausedMutations.reduce( | ||
(promise, mutation) => promise.then(() => mutation.continue().catch(noop)), | ||
Promise.resolve() | ||
) | ||
); | ||
}).then(() => { | ||
this.#resuming = void 0; | ||
}); | ||
return this.#resuming; | ||
const pausedMutations = this.getAll().filter((x) => x.state.isPaused); | ||
return notifyManager.batch( | ||
() => Promise.all( | ||
pausedMutations.map((mutation) => mutation.continue().catch(noop)) | ||
) | ||
); | ||
} | ||
}; | ||
function scopeFor(mutation) { | ||
return mutation.options.scope?.id ?? String(mutation.mutationId); | ||
} | ||
export { | ||
@@ -83,0 +98,0 @@ MutationCache |
import './subscribable.js'; | ||
export { e as MutationObserver } from './queryClient-K0zFyarY.js'; | ||
export { e as MutationObserver } from './types-EkjjZlVm.js'; | ||
import './removable.js'; |
@@ -1,2 +0,2 @@ | ||
import { ak as QueryObserverResult, b as QueryClient, W as QueryObserverOptions, aP as NotifyOptions, o as Query, t as QueryKey, c as QueryObserver } from './queryClient-K0zFyarY.js'; | ||
import { ak as QueryObserverResult, b as QueryClient, W as QueryObserverOptions, aQ as NotifyOptions, o as Query, t as QueryKey, c as QueryObserver } from './types-EkjjZlVm.js'; | ||
import { Subscribable } from './subscribable.js'; | ||
@@ -3,0 +3,0 @@ import './removable.js'; |
import './removable.js'; | ||
export { bd as Action, b9 as FetchContext, ba as FetchDirection, bb as FetchMeta, bc as FetchOptions, o as Query, aN as QueryBehavior, n as QueryState, be as SetStateOptions, bf as fetchState } from './queryClient-K0zFyarY.js'; | ||
export { aV as Action, aR as FetchContext, aS as FetchDirection, aT as FetchMeta, aU as FetchOptions, o as Query, aO as QueryBehavior, n as QueryState, aW as SetStateOptions, aX as fetchState } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; |
@@ -269,5 +269,6 @@ // src/query.ts | ||
retryDelay: context.options.retryDelay, | ||
networkMode: context.options.networkMode | ||
networkMode: context.options.networkMode, | ||
canRun: () => true | ||
}); | ||
return this.#retryer.promise; | ||
return this.#retryer.start(); | ||
} | ||
@@ -274,0 +275,0 @@ #dispatch(action) { |
@@ -1,3 +0,3 @@ | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, bg as QueryStore } from './queryClient-K0zFyarY.js'; | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, ba as QueryStore } from './types-EkjjZlVm.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { b as QueryClient } from './queryClient-K0zFyarY.js'; | ||
export { b as QueryClient } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
import './subscribable.js'; | ||
export { aP as NotifyOptions, aO as ObserverFetchOptions, c as QueryObserver } from './queryClient-K0zFyarY.js'; | ||
export { aQ as NotifyOptions, aP as ObserverFetchOptions, c as QueryObserver } from './types-EkjjZlVm.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { C as CancelledError, b6 as RetryDelayValue, b5 as RetryValue, b4 as Retryer, b7 as canFetch, b8 as createRetryer, l as isCancelledError } from './queryClient-K0zFyarY.js'; | ||
export { C as CancelledError, bf as RetryDelayValue, be as RetryValue, bd as Retryer, bg as canFetch, bh as createRetryer, l as isCancelledError } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -43,3 +43,4 @@ // src/retryer.ts | ||
}; | ||
const shouldPause = () => !focusManager.isFocused() || config.networkMode !== "always" && !onlineManager.isOnline(); | ||
const canContinue = () => focusManager.isFocused() && (config.networkMode === "always" || onlineManager.isOnline()) && config.canRun(); | ||
const canStart = () => canFetch(config.networkMode) && config.canRun(); | ||
const resolve = (value) => { | ||
@@ -64,7 +65,5 @@ if (!isResolved) { | ||
continueFn = (value) => { | ||
const canContinue = isResolved || !shouldPause(); | ||
if (canContinue) { | ||
if (isResolved || canContinue()) { | ||
continueResolve(value); | ||
} | ||
return canContinue; | ||
}; | ||
@@ -104,6 +103,3 @@ config.onPause?.(); | ||
sleep(delay).then(() => { | ||
if (shouldPause()) { | ||
return pause(); | ||
} | ||
return; | ||
return canContinue() ? void 0 : pause(); | ||
}).then(() => { | ||
@@ -118,7 +114,2 @@ if (isRetryCancelled) { | ||
}; | ||
if (canFetch(config.networkMode)) { | ||
run(); | ||
} else { | ||
pause().then(run); | ||
} | ||
return { | ||
@@ -128,7 +119,16 @@ promise, | ||
continue: () => { | ||
const didContinue = continueFn?.(); | ||
return didContinue ? promise : Promise.resolve(); | ||
continueFn?.(); | ||
return promise; | ||
}, | ||
cancelRetry, | ||
continueRetry | ||
continueRetry, | ||
canStart, | ||
start: () => { | ||
if (canStart()) { | ||
run(); | ||
} else { | ||
pause().then(run); | ||
} | ||
return promise; | ||
} | ||
}; | ||
@@ -135,0 +135,0 @@ } |
@@ -1,3 +0,3 @@ | ||
export { aJ as CancelOptions, v as DataTag, D as DefaultError, aI as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aA as MutateFunction, az as MutateOptions, aw as MutationFunction, at as MutationKey, av as MutationMeta, aB as MutationObserverBaseResult, aE as MutationObserverErrorResult, aC as MutationObserverIdleResult, aD as MutationObserverLoadingResult, ay as MutationObserverOptions, aG as MutationObserverResult, aF as MutationObserverSuccessResult, ax as MutationOptions, au as MutationStatus, H as NetworkMode, N as NoInfer, aM as NotifyEvent, aL as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, aH as QueryClientConfig, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aK as SetDataOptions, V as ThrowOnError, X as WithRequired, u as dataTagSymbol } from './queryClient-K0zFyarY.js'; | ||
export { aK as CancelOptions, v as DataTag, D as DefaultError, aJ as DefaultOptions, $ as DefaultedInfiniteQueryObserverOptions, Z as DefaultedQueryObserverOptions, ar as DefinedInfiniteQueryObserverResult, aj as DefinedQueryObserverResult, a1 as EnsureQueryDataOptions, a2 as FetchInfiniteQueryOptions, a9 as FetchNextPageOptions, aa as FetchPreviousPageOptions, a0 as FetchQueryOptions, ac as FetchStatus, B as GetNextPageParamFunction, G as GetPreviousPageParamFunction, E as InfiniteData, al as InfiniteQueryObserverBaseResult, ao as InfiniteQueryObserverLoadingErrorResult, an as InfiniteQueryObserverLoadingResult, _ as InfiniteQueryObserverOptions, am as InfiniteQueryObserverPendingResult, ap as InfiniteQueryObserverRefetchErrorResult, as as InfiniteQueryObserverResult, aq as InfiniteQueryObserverSuccessResult, T as InfiniteQueryPageParamsOptions, I as InitialDataFunction, L as InitialPageParam, a7 as InvalidateOptions, a5 as InvalidateQueryFilters, aB as MutateFunction, aA as MutateOptions, ax as MutationFunction, at as MutationKey, aw as MutationMeta, aC as MutationObserverBaseResult, aF as MutationObserverErrorResult, aD as MutationObserverIdleResult, aE as MutationObserverLoadingResult, az as MutationObserverOptions, aH as MutationObserverResult, aG as MutationObserverSuccessResult, ay as MutationOptions, av as MutationScope, au as MutationStatus, H as NetworkMode, N as NoInfer, aN as NotifyEvent, aM as NotifyEventType, J as NotifyOnChangeProps, O as OmitKeyof, Y as Optional, P as PlaceholderDataFunction, z as QueriesPlaceholderDataFunction, aI as QueryClientConfig, w as QueryFunction, y as QueryFunctionContext, t as QueryKey, A as QueryKeyHashFunction, F as QueryMeta, ad as QueryObserverBaseResult, ag as QueryObserverLoadingErrorResult, af as QueryObserverLoadingResult, W as QueryObserverOptions, ae as QueryObserverPendingResult, ah as QueryObserverRefetchErrorResult, ak as QueryObserverResult, ai as QueryObserverSuccessResult, K as QueryOptions, x as QueryPersister, ab as QueryStatus, a4 as RefetchOptions, a6 as RefetchQueryFilters, R as Register, a8 as ResetOptions, a3 as ResultOptions, aL as SetDataOptions, V as ThrowOnError, X as WithRequired, u as dataTagSymbol } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { g as MutationFilters, j as QueryFilters, aQ as QueryTypeFilter, S as SkipToken, U as Updater, b0 as addToEnd, b1 as addToStart, aS as functionalUpdate, h as hashKey, aV as hashQueryKeyByOptions, aY as isPlainArray, aZ as isPlainObject, i as isServer, aT as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, aR as noop, aW as partialMatchKey, a$ as replaceData, r as replaceEqualDeep, aX as shallowEqualObjects, s as skipToken, a_ as sleep, aU as timeUntilStale } from './queryClient-K0zFyarY.js'; | ||
export { g as MutationFilters, j as QueryFilters, aY as QueryTypeFilter, S as SkipToken, U as Updater, b8 as addToEnd, b9 as addToStart, a_ as functionalUpdate, h as hashKey, b1 as hashQueryKeyByOptions, b4 as isPlainArray, b5 as isPlainObject, i as isServer, a$ as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, aZ as noop, b2 as partialMatchKey, b7 as replaceData, r as replaceEqualDeep, b3 as shallowEqualObjects, s as skipToken, b6 as sleep, b0 as timeUntilStale } from './types-EkjjZlVm.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
{ | ||
"name": "@tanstack/query-core", | ||
"version": "5.29.0", | ||
"version": "5.31.0", | ||
"description": "The framework agnostic core that powers TanStack Query", | ||
@@ -5,0 +5,0 @@ "author": "tannerlinsley", |
@@ -1,3 +0,1 @@ | ||
import type { QueryClient } from './queryClient' | ||
import type { Query, QueryState } from './query' | ||
import type { | ||
@@ -7,2 +5,3 @@ MutationKey, | ||
MutationOptions, | ||
MutationScope, | ||
QueryKey, | ||
@@ -12,2 +11,4 @@ QueryMeta, | ||
} from './types' | ||
import type { QueryClient } from './queryClient' | ||
import type { Query, QueryState } from './query' | ||
import type { Mutation, MutationState } from './mutation' | ||
@@ -33,2 +34,3 @@ | ||
meta?: MutationMeta | ||
scope?: MutationScope | ||
} | ||
@@ -54,2 +56,3 @@ | ||
state: mutation.state, | ||
...(mutation.options.scope && { scope: mutation.options.scope }), | ||
...(mutation.meta && { meta: mutation.meta }), | ||
@@ -122,3 +125,3 @@ } | ||
mutations.forEach((dehydratedMutation) => { | ||
mutations.forEach(({ state, ...mutationOptions }) => { | ||
mutationCache.build( | ||
@@ -128,6 +131,5 @@ client, | ||
...options?.defaultOptions?.mutations, | ||
mutationKey: dehydratedMutation.mutationKey, | ||
meta: dehydratedMutation.meta, | ||
...mutationOptions, | ||
}, | ||
dehydratedMutation.state, | ||
state, | ||
) | ||
@@ -134,0 +136,0 @@ }) |
import { notifyManager } from './notifyManager' | ||
import { Removable } from './removable' | ||
import { canFetch, createRetryer } from './retryer' | ||
import { createRetryer } from './retryer' | ||
import type { | ||
@@ -20,3 +20,2 @@ DefaultError, | ||
options: MutationOptions<TData, TError, TVariables, TContext> | ||
defaultOptions?: MutationOptions<TData, TError, TVariables, TContext> | ||
state?: MutationState<TData, TError, TVariables, TContext> | ||
@@ -50,2 +49,3 @@ } | ||
type: 'pending' | ||
isPaused: boolean | ||
variables?: TVariables | ||
@@ -94,3 +94,2 @@ context?: TContext | ||
#observers: Array<MutationObserver<TData, TError, TVariables, TContext>> | ||
#defaultOptions?: MutationOptions<TData, TError, TVariables, TContext> | ||
#mutationCache: MutationCache | ||
@@ -103,3 +102,2 @@ #retryer?: Retryer<TData> | ||
this.mutationId = config.mutationId | ||
this.#defaultOptions = config.defaultOptions | ||
this.#mutationCache = config.mutationCache | ||
@@ -114,5 +112,5 @@ this.#observers = [] | ||
setOptions( | ||
options?: MutationOptions<TData, TError, TVariables, TContext>, | ||
options: MutationOptions<TData, TError, TVariables, TContext>, | ||
): void { | ||
this.options = { ...this.#defaultOptions, ...options } | ||
this.options = options | ||
@@ -172,32 +170,30 @@ this.updateGcTime(this.options.gcTime) | ||
async execute(variables: TVariables): Promise<TData> { | ||
const executeMutation = () => { | ||
this.#retryer = createRetryer({ | ||
fn: () => { | ||
if (!this.options.mutationFn) { | ||
return Promise.reject(new Error('No mutationFn found')) | ||
} | ||
return this.options.mutationFn(variables) | ||
}, | ||
onFail: (failureCount, error) => { | ||
this.#dispatch({ type: 'failed', failureCount, error }) | ||
}, | ||
onPause: () => { | ||
this.#dispatch({ type: 'pause' }) | ||
}, | ||
onContinue: () => { | ||
this.#dispatch({ type: 'continue' }) | ||
}, | ||
retry: this.options.retry ?? 0, | ||
retryDelay: this.options.retryDelay, | ||
networkMode: this.options.networkMode, | ||
}) | ||
this.#retryer = createRetryer({ | ||
fn: () => { | ||
if (!this.options.mutationFn) { | ||
return Promise.reject(new Error('No mutationFn found')) | ||
} | ||
return this.options.mutationFn(variables) | ||
}, | ||
onFail: (failureCount, error) => { | ||
this.#dispatch({ type: 'failed', failureCount, error }) | ||
}, | ||
onPause: () => { | ||
this.#dispatch({ type: 'pause' }) | ||
}, | ||
onContinue: () => { | ||
this.#dispatch({ type: 'continue' }) | ||
}, | ||
retry: this.options.retry ?? 0, | ||
retryDelay: this.options.retryDelay, | ||
networkMode: this.options.networkMode, | ||
canRun: () => this.#mutationCache.canRun(this), | ||
}) | ||
return this.#retryer.promise | ||
} | ||
const restored = this.state.status === 'pending' | ||
const isPaused = !this.#retryer.canStart() | ||
try { | ||
if (!restored) { | ||
this.#dispatch({ type: 'pending', variables }) | ||
this.#dispatch({ type: 'pending', variables, isPaused }) | ||
// Notify cache callback | ||
@@ -214,6 +210,7 @@ await this.#mutationCache.config.onMutate?.( | ||
variables, | ||
isPaused, | ||
}) | ||
} | ||
} | ||
const data = await executeMutation() | ||
const data = await this.#retryer.start() | ||
@@ -278,2 +275,4 @@ // Notify cache callback | ||
} | ||
} finally { | ||
this.#mutationCache.runNext(this) | ||
} | ||
@@ -311,3 +310,3 @@ } | ||
error: null, | ||
isPaused: !canFetch(this.options.networkMode), | ||
isPaused: action.isPaused, | ||
status: 'pending', | ||
@@ -314,0 +313,0 @@ variables: action.variables, |
@@ -85,10 +85,9 @@ import { notifyManager } from './notifyManager' | ||
export class MutationCache extends Subscribable<MutationCacheListener> { | ||
#mutations: Array<Mutation<any, any, any, any>> | ||
#mutations: Map<string, Array<Mutation<any, any, any, any>>> | ||
#mutationId: number | ||
#resuming: Promise<unknown> | undefined | ||
constructor(public config: MutationCacheConfig = {}) { | ||
super() | ||
this.#mutations = [] | ||
this.#mutationId = 0 | ||
this.#mutations = new Map() | ||
this.#mutationId = Date.now() | ||
} | ||
@@ -114,3 +113,6 @@ | ||
add(mutation: Mutation<any, any, any, any>): void { | ||
this.#mutations.push(mutation) | ||
const scope = scopeFor(mutation) | ||
const mutations = this.#mutations.get(scope) ?? [] | ||
mutations.push(mutation) | ||
this.#mutations.set(scope, mutations) | ||
this.notify({ type: 'added', mutation }) | ||
@@ -120,9 +122,40 @@ } | ||
remove(mutation: Mutation<any, any, any, any>): void { | ||
this.#mutations = this.#mutations.filter((x) => x !== mutation) | ||
const scope = scopeFor(mutation) | ||
if (this.#mutations.has(scope)) { | ||
const mutations = this.#mutations | ||
.get(scope) | ||
?.filter((x) => x !== mutation) | ||
if (mutations) { | ||
if (mutations.length === 0) { | ||
this.#mutations.delete(scope) | ||
} else { | ||
this.#mutations.set(scope, mutations) | ||
} | ||
} | ||
} | ||
this.notify({ type: 'removed', mutation }) | ||
} | ||
canRun(mutation: Mutation<any, any, any, any>): boolean { | ||
const firstPendingMutation = this.#mutations | ||
.get(scopeFor(mutation)) | ||
?.find((m) => m.state.status === 'pending') | ||
// we can run if there is no current pending mutation (start use-case) | ||
// or if WE are the first pending mutation (continue use-case) | ||
return !firstPendingMutation || firstPendingMutation === mutation | ||
} | ||
runNext(mutation: Mutation<any, any, any, any>): Promise<unknown> { | ||
const foundMutation = this.#mutations | ||
.get(scopeFor(mutation)) | ||
?.find((m) => m !== mutation && m.state.isPaused) | ||
return foundMutation?.continue() ?? Promise.resolve() | ||
} | ||
clear(): void { | ||
notifyManager.batch(() => { | ||
this.#mutations.forEach((mutation) => { | ||
this.getAll().forEach((mutation) => { | ||
this.remove(mutation) | ||
@@ -134,3 +167,3 @@ }) | ||
getAll(): Array<Mutation> { | ||
return this.#mutations | ||
return [...this.#mutations.values()].flat() | ||
} | ||
@@ -148,11 +181,9 @@ | ||
return this.#mutations.find((mutation) => | ||
return this.getAll().find((mutation) => | ||
matchMutation(defaultedFilters, mutation), | ||
) | ||
) as Mutation<TData, TError, TVariables, TContext> | undefined | ||
} | ||
findAll(filters: MutationFilters = {}): Array<Mutation> { | ||
return this.#mutations.filter((mutation) => | ||
matchMutation(filters, mutation), | ||
) | ||
return this.getAll().filter((mutation) => matchMutation(filters, mutation)) | ||
} | ||
@@ -169,19 +200,14 @@ | ||
resumePausedMutations(): Promise<unknown> { | ||
this.#resuming = (this.#resuming ?? Promise.resolve()) | ||
.then(() => { | ||
const pausedMutations = this.#mutations.filter((x) => x.state.isPaused) | ||
return notifyManager.batch(() => | ||
pausedMutations.reduce( | ||
(promise, mutation) => | ||
promise.then(() => mutation.continue().catch(noop)), | ||
Promise.resolve() as Promise<unknown>, | ||
), | ||
) | ||
}) | ||
.then(() => { | ||
this.#resuming = undefined | ||
}) | ||
const pausedMutations = this.getAll().filter((x) => x.state.isPaused) | ||
return this.#resuming | ||
return notifyManager.batch(() => | ||
Promise.all( | ||
pausedMutations.map((mutation) => mutation.continue().catch(noop)), | ||
), | ||
) | ||
} | ||
} | ||
function scopeFor(mutation: Mutation<any, any, any, any>) { | ||
return mutation.options.scope?.id ?? String(mutation.mutationId) | ||
} |
@@ -530,5 +530,6 @@ import { noop, replaceData, skipToken, timeUntilStale } from './utils' | ||
networkMode: context.options.networkMode, | ||
canRun: () => true, | ||
}) | ||
return this.#retryer.promise | ||
return this.#retryer.start() | ||
} | ||
@@ -535,0 +536,0 @@ |
@@ -19,2 +19,3 @@ import { focusManager } from './focusManager' | ||
networkMode: NetworkMode | undefined | ||
canRun: () => boolean | ||
} | ||
@@ -28,2 +29,4 @@ | ||
continueRetry: () => void | ||
canStart: () => boolean | ||
start: () => Promise<TData> | ||
} | ||
@@ -74,3 +77,3 @@ | ||
let isResolved = false | ||
let continueFn: ((value?: unknown) => boolean) | undefined | ||
let continueFn: ((value?: unknown) => void) | undefined | ||
let promiseResolve: (data: TData) => void | ||
@@ -99,6 +102,9 @@ let promiseReject: (error: TError) => void | ||
const shouldPause = () => | ||
!focusManager.isFocused() || | ||
(config.networkMode !== 'always' && !onlineManager.isOnline()) | ||
const canContinue = () => | ||
focusManager.isFocused() && | ||
(config.networkMode === 'always' || onlineManager.isOnline()) && | ||
config.canRun() | ||
const canStart = () => canFetch(config.networkMode) && config.canRun() | ||
const resolve = (value: any) => { | ||
@@ -125,7 +131,5 @@ if (!isResolved) { | ||
continueFn = (value) => { | ||
const canContinue = isResolved || !shouldPause() | ||
if (canContinue) { | ||
if (isResolved || canContinue()) { | ||
continueResolve(value) | ||
} | ||
return canContinue | ||
} | ||
@@ -192,6 +196,3 @@ config.onPause?.() | ||
.then(() => { | ||
if (shouldPause()) { | ||
return pause() | ||
} | ||
return | ||
return canContinue() ? undefined : pause() | ||
}) | ||
@@ -208,9 +209,2 @@ .then(() => { | ||
// Start loop | ||
if (canFetch(config.networkMode)) { | ||
run() | ||
} else { | ||
pause().then(run) | ||
} | ||
return { | ||
@@ -220,8 +214,18 @@ promise, | ||
continue: () => { | ||
const didContinue = continueFn?.() | ||
return didContinue ? promise : Promise.resolve() | ||
continueFn?.() | ||
return promise | ||
}, | ||
cancelRetry, | ||
continueRetry, | ||
canStart, | ||
start: () => { | ||
// Start loop | ||
if (canStart()) { | ||
run() | ||
} else { | ||
pause().then(run) | ||
} | ||
return promise | ||
}, | ||
} | ||
} |
@@ -720,2 +720,6 @@ /* istanbul ignore file */ | ||
export type MutationScope = { | ||
id: string | ||
} | ||
export type MutationMeta = Register extends { | ||
@@ -766,2 +770,3 @@ mutationMeta: infer TMutationMeta | ||
meta?: MutationMeta | ||
scope?: MutationScope | ||
} | ||
@@ -768,0 +773,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1882686
26967