@tanstack/query-core
Advanced tools
Comparing version 5.48.0 to 5.49.0
@@ -1,3 +0,3 @@ | ||
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-CTf4vERU.js'; | ||
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
import "./chunk-2HYBKCYP.js"; | ||
// src/hydration.ts | ||
function defaultTransformerFn(data) { | ||
return data; | ||
} | ||
function dehydrateMutation(mutation) { | ||
@@ -12,10 +15,15 @@ return { | ||
} | ||
function dehydrateQuery(query) { | ||
function dehydrateQuery(query, serializeData) { | ||
var _a; | ||
return { | ||
state: query.state, | ||
state: { | ||
...query.state, | ||
...query.state.data !== void 0 && { | ||
data: serializeData(query.state.data) | ||
} | ||
}, | ||
queryKey: query.queryKey, | ||
queryHash: query.queryHash, | ||
...query.state.status === "pending" && { | ||
promise: (_a = query.promise) == null ? void 0 : _a.catch((error) => { | ||
promise: (_a = query.promise) == null ? void 0 : _a.then(serializeData).catch((error) => { | ||
if (process.env.NODE_ENV !== "production") { | ||
@@ -39,3 +47,3 @@ console.error( | ||
function dehydrate(client, options = {}) { | ||
var _a, _b; | ||
var _a, _b, _c; | ||
const filterMutation = options.shouldDehydrateMutation ?? ((_a = client.getDefaultOptions().dehydrate) == null ? void 0 : _a.shouldDehydrateMutation) ?? defaultShouldDehydrateMutation; | ||
@@ -46,6 +54,10 @@ const mutations = client.getMutationCache().getAll().flatMap( | ||
const filterQuery = options.shouldDehydrateQuery ?? ((_b = client.getDefaultOptions().dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? defaultShouldDehydrateQuery; | ||
const queries = client.getQueryCache().getAll().flatMap((query) => filterQuery(query) ? [dehydrateQuery(query)] : []); | ||
const serializeData = options.serializeData ?? ((_c = client.getDefaultOptions().dehydrate) == null ? void 0 : _c.serializeData) ?? defaultTransformerFn; | ||
const queries = client.getQueryCache().getAll().flatMap( | ||
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : [] | ||
); | ||
return { mutations, queries }; | ||
} | ||
function hydrate(client, dehydratedState, options) { | ||
var _a, _b; | ||
if (typeof dehydratedState !== "object" || dehydratedState === null) { | ||
@@ -56,11 +68,12 @@ return; | ||
const queryCache = client.getQueryCache(); | ||
const deserializeData = ((_a = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _a.deserializeData) ?? ((_b = client.getDefaultOptions().hydrate) == null ? void 0 : _b.deserializeData) ?? defaultTransformerFn; | ||
const mutations = dehydratedState.mutations || []; | ||
const queries = dehydratedState.queries || []; | ||
mutations.forEach(({ state, ...mutationOptions }) => { | ||
var _a, _b; | ||
var _a2, _b2; | ||
mutationCache.build( | ||
client, | ||
{ | ||
...(_a = client.getDefaultOptions().hydrate) == null ? void 0 : _a.mutations, | ||
...(_b = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b.mutations, | ||
...(_a2 = client.getDefaultOptions().hydrate) == null ? void 0 : _a2.mutations, | ||
...(_b2 = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b2.mutations, | ||
...mutationOptions | ||
@@ -72,8 +85,12 @@ }, | ||
queries.forEach(({ queryKey, state, queryHash, meta, promise }) => { | ||
var _a, _b, _c; | ||
var _a2, _b2; | ||
let query = queryCache.get(queryHash); | ||
const data = state.data === void 0 ? state.data : deserializeData(state.data); | ||
if (query) { | ||
if (query.state.dataUpdatedAt < state.dataUpdatedAt) { | ||
const { fetchStatus: _ignored, ...dehydratedQueryState } = state; | ||
query.setState(dehydratedQueryState); | ||
const { fetchStatus: _ignored, ...serializedState } = state; | ||
query.setState({ | ||
...serializedState, | ||
data | ||
}); | ||
} | ||
@@ -84,4 +101,4 @@ } else { | ||
{ | ||
...(_a = client.getDefaultOptions().hydrate) == null ? void 0 : _a.queries, | ||
...(_b = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b.queries, | ||
...(_a2 = client.getDefaultOptions().hydrate) == null ? void 0 : _a2.queries, | ||
...(_b2 = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b2.queries, | ||
queryKey, | ||
@@ -95,2 +112,3 @@ queryHash, | ||
...state, | ||
data, | ||
fetchStatus: "idle" | ||
@@ -101,4 +119,3 @@ } | ||
if (promise) { | ||
const transformPromise = (_c = client.getDefaultOptions().hydrate) == null ? void 0 : _c.transformPromise; | ||
const initialPromise = (transformPromise == null ? void 0 : transformPromise(Promise.resolve(promise))) ?? promise; | ||
const initialPromise = Promise.resolve(promise).then(deserializeData); | ||
void query.fetch(void 0, { initialPromise }); | ||
@@ -105,0 +122,0 @@ } |
@@ -1,2 +0,2 @@ | ||
export { aT as CancelOptions, C as CancelledError, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, H as HydrateOptions, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, v as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, e as MutationObserver, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, w as MutationState, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aR as QueryClientConfig, j as QueryFilters, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, c as QueryObserver, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, t as QueryState, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, S as SkipToken, F as StaleTime, a2 as ThrowOnError, U as Updater, a4 as WithRequired, A as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './hydration-CTf4vERU.js'; | ||
export { aT as CancelOptions, C as CancelledError, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, H as HydrateOptions, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, v as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, e as MutationObserver, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, w as MutationState, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aR as QueryClientConfig, j as QueryFilters, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, c as QueryObserver, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, t as QueryState, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, S as SkipToken, F as StaleTime, a2 as ThrowOnError, U as Updater, a4 as WithRequired, A as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './hydration-ByKLEQMr.js'; | ||
export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.js'; | ||
@@ -3,0 +3,0 @@ export { InfiniteQueryObserver } from './infiniteQueryObserver.js'; |
@@ -1,2 +0,2 @@ | ||
import { aX as QueryBehavior, X as InfiniteData, a1 as InfiniteQueryPageParamsOptions } from './hydration-CTf4vERU.js'; | ||
import { aX as QueryBehavior, X as InfiniteData, a1 as InfiniteQueryPageParamsOptions } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
@@ -1,2 +0,2 @@ | ||
import { y as DefaultError, X as InfiniteData, z as QueryKey, c as QueryObserver, aB as InfiniteQueryObserverResult, aY as ObserverFetchOptions, b as QueryClient, a7 as InfiniteQueryObserverOptions, aZ as NotifyOptions, a8 as DefaultedInfiniteQueryObserverOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, u as Query } from './hydration-CTf4vERU.js'; | ||
import { y as DefaultError, X as InfiniteData, z as QueryKey, c as QueryObserver, aB as InfiniteQueryObserverResult, aY as ObserverFetchOptions, b as QueryClient, a7 as InfiniteQueryObserverOptions, aZ as NotifyOptions, a8 as DefaultedInfiniteQueryObserverOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, u as Query } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
import './removable.js'; | ||
export { bn as Action, v as Mutation, w as MutationState, bo as getDefaultState } from './hydration-CTf4vERU.js'; | ||
export { bn as Action, v as Mutation, w as MutationState, bo as getDefaultState } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-CTf4vERU.js'; | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
import './subscribable.js'; | ||
export { e as MutationObserver } from './hydration-CTf4vERU.js'; | ||
export { e as MutationObserver } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; |
@@ -1,2 +0,2 @@ | ||
import { at as QueryObserverResult, b as QueryClient, a3 as QueryObserverOptions, aZ as NotifyOptions, u as Query, z as QueryKey, c as QueryObserver } from './hydration-CTf4vERU.js'; | ||
import { at as QueryObserverResult, b as QueryClient, a3 as QueryObserverOptions, aZ as NotifyOptions, u as Query, z as QueryKey, c as QueryObserver } from './hydration-ByKLEQMr.js'; | ||
import { Subscribable } from './subscribable.js'; | ||
@@ -3,0 +3,0 @@ import './removable.js'; |
import './removable.js'; | ||
export { b2 as Action, a_ as FetchContext, a$ as FetchDirection, b0 as FetchMeta, b1 as FetchOptions, u as Query, aX as QueryBehavior, t as QueryState, b3 as SetStateOptions, b4 as fetchState } from './hydration-CTf4vERU.js'; | ||
export { b2 as Action, a_ as FetchContext, a$ as FetchDirection, b0 as FetchMeta, b1 as FetchOptions, u as Query, aX as QueryBehavior, t as QueryState, b3 as SetStateOptions, b4 as fetchState } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, bm as QueryStore } from './hydration-CTf4vERU.js'; | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, bm as QueryStore } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { b as QueryClient } from './hydration-CTf4vERU.js'; | ||
export { b as QueryClient } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
import './subscribable.js'; | ||
export { aZ as NotifyOptions, aY as ObserverFetchOptions, c as QueryObserver } from './hydration-CTf4vERU.js'; | ||
export { aZ as NotifyOptions, aY as ObserverFetchOptions, c as QueryObserver } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { C as CancelledError, br as RetryDelayValue, bq as RetryValue, bp as Retryer, bs as canFetch, bt as createRetryer, l as isCancelledError } from './hydration-CTf4vERU.js'; | ||
export { C as CancelledError, br as RetryDelayValue, bq as RetryValue, bp as Retryer, bs as canFetch, bt as createRetryer, l as isCancelledError } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { aT as CancelOptions, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, aR as QueryClientConfig, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, F as StaleTime, a2 as ThrowOnError, a4 as WithRequired, A as dataTagSymbol } from './hydration-CTf4vERU.js'; | ||
export { aT as CancelOptions, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, aR as QueryClientConfig, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, F as StaleTime, a2 as ThrowOnError, a4 as WithRequired, A as dataTagSymbol } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { g as MutationFilters, j as QueryFilters, b5 as QueryTypeFilter, S as SkipToken, U as Updater, bj as addToEnd, bk as addToStart, bl as ensureQueryFn, b7 as functionalUpdate, h as hashKey, bc as hashQueryKeyByOptions, bf as isPlainArray, bg as isPlainObject, i as isServer, b8 as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, b6 as noop, bd as partialMatchKey, bi as replaceData, r as replaceEqualDeep, bb as resolveEnabled, ba as resolveStaleTime, be as shallowEqualObjects, s as skipToken, bh as sleep, b9 as timeUntilStale } from './hydration-CTf4vERU.js'; | ||
export { g as MutationFilters, j as QueryFilters, b5 as QueryTypeFilter, S as SkipToken, U as Updater, bj as addToEnd, bk as addToStart, bl as ensureQueryFn, b7 as functionalUpdate, h as hashKey, bc as hashQueryKeyByOptions, bf as isPlainArray, bg as isPlainObject, i as isServer, b8 as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, b6 as noop, bd as partialMatchKey, bi as replaceData, r as replaceEqualDeep, bb as resolveEnabled, ba as resolveStaleTime, be as shallowEqualObjects, s as skipToken, bh as sleep, b9 as timeUntilStale } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-CTf4vERU.js'; | ||
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
// src/hydration.ts | ||
function defaultTransformerFn(data) { | ||
return data; | ||
} | ||
function dehydrateMutation(mutation) { | ||
@@ -10,9 +13,14 @@ return { | ||
} | ||
function dehydrateQuery(query) { | ||
function dehydrateQuery(query, serializeData) { | ||
return { | ||
state: query.state, | ||
state: { | ||
...query.state, | ||
...query.state.data !== void 0 && { | ||
data: serializeData(query.state.data) | ||
} | ||
}, | ||
queryKey: query.queryKey, | ||
queryHash: query.queryHash, | ||
...query.state.status === "pending" && { | ||
promise: query.promise?.catch((error) => { | ||
promise: query.promise?.then(serializeData).catch((error) => { | ||
if (process.env.NODE_ENV !== "production") { | ||
@@ -41,3 +49,6 @@ console.error( | ||
const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery; | ||
const queries = client.getQueryCache().getAll().flatMap((query) => filterQuery(query) ? [dehydrateQuery(query)] : []); | ||
const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn; | ||
const queries = client.getQueryCache().getAll().flatMap( | ||
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : [] | ||
); | ||
return { mutations, queries }; | ||
@@ -51,2 +62,3 @@ } | ||
const queryCache = client.getQueryCache(); | ||
const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn; | ||
const mutations = dehydratedState.mutations || []; | ||
@@ -67,6 +79,10 @@ const queries = dehydratedState.queries || []; | ||
let query = queryCache.get(queryHash); | ||
const data = state.data === void 0 ? state.data : deserializeData(state.data); | ||
if (query) { | ||
if (query.state.dataUpdatedAt < state.dataUpdatedAt) { | ||
const { fetchStatus: _ignored, ...dehydratedQueryState } = state; | ||
query.setState(dehydratedQueryState); | ||
const { fetchStatus: _ignored, ...serializedState } = state; | ||
query.setState({ | ||
...serializedState, | ||
data | ||
}); | ||
} | ||
@@ -87,2 +103,3 @@ } else { | ||
...state, | ||
data, | ||
fetchStatus: "idle" | ||
@@ -93,4 +110,3 @@ } | ||
if (promise) { | ||
const transformPromise = client.getDefaultOptions().hydrate?.transformPromise; | ||
const initialPromise = transformPromise?.(Promise.resolve(promise)) ?? promise; | ||
const initialPromise = Promise.resolve(promise).then(deserializeData); | ||
void query.fetch(void 0, { initialPromise }); | ||
@@ -97,0 +113,0 @@ } |
@@ -1,2 +0,2 @@ | ||
export { aT as CancelOptions, C as CancelledError, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, H as HydrateOptions, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, v as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, e as MutationObserver, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, w as MutationState, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aR as QueryClientConfig, j as QueryFilters, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, c as QueryObserver, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, t as QueryState, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, S as SkipToken, F as StaleTime, a2 as ThrowOnError, U as Updater, a4 as WithRequired, A as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './hydration-CTf4vERU.js'; | ||
export { aT as CancelOptions, C as CancelledError, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, H as HydrateOptions, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, v as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, e as MutationObserver, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, w as MutationState, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aR as QueryClientConfig, j as QueryFilters, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, c as QueryObserver, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, t as QueryState, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, S as SkipToken, F as StaleTime, a2 as ThrowOnError, U as Updater, a4 as WithRequired, A as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './hydration-ByKLEQMr.js'; | ||
export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.js'; | ||
@@ -3,0 +3,0 @@ export { InfiniteQueryObserver } from './infiniteQueryObserver.js'; |
@@ -1,2 +0,2 @@ | ||
import { aX as QueryBehavior, X as InfiniteData, a1 as InfiniteQueryPageParamsOptions } from './hydration-CTf4vERU.js'; | ||
import { aX as QueryBehavior, X as InfiniteData, a1 as InfiniteQueryPageParamsOptions } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
@@ -1,2 +0,2 @@ | ||
import { y as DefaultError, X as InfiniteData, z as QueryKey, c as QueryObserver, aB as InfiniteQueryObserverResult, aY as ObserverFetchOptions, b as QueryClient, a7 as InfiniteQueryObserverOptions, aZ as NotifyOptions, a8 as DefaultedInfiniteQueryObserverOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, u as Query } from './hydration-CTf4vERU.js'; | ||
import { y as DefaultError, X as InfiniteData, z as QueryKey, c as QueryObserver, aB as InfiniteQueryObserverResult, aY as ObserverFetchOptions, b as QueryClient, a7 as InfiniteQueryObserverOptions, aZ as NotifyOptions, a8 as DefaultedInfiniteQueryObserverOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, u as Query } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
@@ -3,0 +3,0 @@ import './subscribable.js'; |
import './removable.js'; | ||
export { bn as Action, v as Mutation, w as MutationState, bo as getDefaultState } from './hydration-CTf4vERU.js'; | ||
export { bn as Action, v as Mutation, w as MutationState, bo as getDefaultState } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-CTf4vERU.js'; | ||
export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
import './subscribable.js'; | ||
export { e as MutationObserver } from './hydration-CTf4vERU.js'; | ||
export { e as MutationObserver } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; |
@@ -1,2 +0,2 @@ | ||
import { at as QueryObserverResult, b as QueryClient, a3 as QueryObserverOptions, aZ as NotifyOptions, u as Query, z as QueryKey, c as QueryObserver } from './hydration-CTf4vERU.js'; | ||
import { at as QueryObserverResult, b as QueryClient, a3 as QueryObserverOptions, aZ as NotifyOptions, u as Query, z as QueryKey, c as QueryObserver } from './hydration-ByKLEQMr.js'; | ||
import { Subscribable } from './subscribable.js'; | ||
@@ -3,0 +3,0 @@ import './removable.js'; |
import './removable.js'; | ||
export { b2 as Action, a_ as FetchContext, a$ as FetchDirection, b0 as FetchMeta, b1 as FetchOptions, u as Query, aX as QueryBehavior, t as QueryState, b3 as SetStateOptions, b4 as fetchState } from './hydration-CTf4vERU.js'; | ||
export { b2 as Action, a_ as FetchContext, a$ as FetchDirection, b0 as FetchMeta, b1 as FetchOptions, u as Query, aX as QueryBehavior, t as QueryState, b3 as SetStateOptions, b4 as fetchState } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, bm as QueryStore } from './hydration-CTf4vERU.js'; | ||
export { Q as QueryCache, a as QueryCacheNotifyEvent, bm as QueryStore } from './hydration-ByKLEQMr.js'; | ||
import './subscribable.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { b as QueryClient } from './hydration-CTf4vERU.js'; | ||
export { b as QueryClient } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
import './subscribable.js'; | ||
export { aZ as NotifyOptions, aY as ObserverFetchOptions, c as QueryObserver } from './hydration-CTf4vERU.js'; | ||
export { aZ as NotifyOptions, aY as ObserverFetchOptions, c as QueryObserver } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; |
@@ -1,3 +0,3 @@ | ||
export { C as CancelledError, br as RetryDelayValue, bq as RetryValue, bp as Retryer, bs as canFetch, bt as createRetryer, l as isCancelledError } from './hydration-CTf4vERU.js'; | ||
export { C as CancelledError, br as RetryDelayValue, bq as RetryValue, bp as Retryer, bs as canFetch, bt as createRetryer, l as isCancelledError } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { aT as CancelOptions, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, aR as QueryClientConfig, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, F as StaleTime, a2 as ThrowOnError, a4 as WithRequired, A as dataTagSymbol } from './hydration-CTf4vERU.js'; | ||
export { aT as CancelOptions, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, aR as QueryClientConfig, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, F as StaleTime, a2 as ThrowOnError, a4 as WithRequired, A as dataTagSymbol } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
@@ -1,3 +0,3 @@ | ||
export { g as MutationFilters, j as QueryFilters, b5 as QueryTypeFilter, S as SkipToken, U as Updater, bj as addToEnd, bk as addToStart, bl as ensureQueryFn, b7 as functionalUpdate, h as hashKey, bc as hashQueryKeyByOptions, bf as isPlainArray, bg as isPlainObject, i as isServer, b8 as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, b6 as noop, bd as partialMatchKey, bi as replaceData, r as replaceEqualDeep, bb as resolveEnabled, ba as resolveStaleTime, be as shallowEqualObjects, s as skipToken, bh as sleep, b9 as timeUntilStale } from './hydration-CTf4vERU.js'; | ||
export { g as MutationFilters, j as QueryFilters, b5 as QueryTypeFilter, S as SkipToken, U as Updater, bj as addToEnd, bk as addToStart, bl as ensureQueryFn, b7 as functionalUpdate, h as hashKey, bc as hashQueryKeyByOptions, bf as isPlainArray, bg as isPlainObject, i as isServer, b8 as isValidTimeout, k as keepPreviousData, f as matchMutation, m as matchQuery, b6 as noop, bd as partialMatchKey, bi as replaceData, r as replaceEqualDeep, bb as resolveEnabled, ba as resolveStaleTime, be as shallowEqualObjects, s as skipToken, bh as sleep, b9 as timeUntilStale } from './hydration-ByKLEQMr.js'; | ||
import './removable.js'; | ||
import './subscribable.js'; |
{ | ||
"name": "@tanstack/query-core", | ||
"version": "5.48.0", | ||
"version": "5.49.0", | ||
"description": "The framework agnostic core that powers TanStack Query", | ||
@@ -5,0 +5,0 @@ "author": "tannerlinsley", |
@@ -20,3 +20,3 @@ import { Subscribable } from './subscribable' | ||
// addEventListener does not exist in React Native, but window does | ||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | ||
// eslint-disable-next-line ts/no-unnecessary-condition | ||
if (!isServer && window.addEventListener) { | ||
@@ -82,3 +82,3 @@ const listener = () => onFocus() | ||
// document global can be unavailable in react native | ||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | ||
// eslint-disable-next-line ts/no-unnecessary-condition | ||
return globalThis.document?.visibilityState !== 'hidden' | ||
@@ -85,0 +85,0 @@ } |
@@ -16,4 +16,9 @@ import type { | ||
// TYPES | ||
type TransformerFn = (data: any) => any | ||
function defaultTransformerFn(data: any): any { | ||
return data | ||
} | ||
export interface DehydrateOptions { | ||
serializeData?: TransformerFn | ||
shouldDehydrateMutation?: (mutation: Mutation) => boolean | ||
@@ -25,3 +30,3 @@ shouldDehydrateQuery?: (query: Query) => boolean | ||
defaultOptions?: { | ||
transformPromise?: (promise: Promise<any>) => Promise<any> | ||
deserializeData?: TransformerFn | ||
queries?: QueryOptions | ||
@@ -67,9 +72,17 @@ mutations?: MutationOptions<unknown, DefaultError, unknown, unknown> | ||
// in the html-payload, but not consume it on the initial render. | ||
function dehydrateQuery(query: Query): DehydratedQuery { | ||
function dehydrateQuery( | ||
query: Query, | ||
serializeData: TransformerFn, | ||
): DehydratedQuery { | ||
return { | ||
state: query.state, | ||
state: { | ||
...query.state, | ||
...(query.state.data !== undefined && { | ||
data: serializeData(query.state.data), | ||
}), | ||
}, | ||
queryKey: query.queryKey, | ||
queryHash: query.queryHash, | ||
...(query.state.status === 'pending' && { | ||
promise: query.promise?.catch((error) => { | ||
promise: query.promise?.then(serializeData).catch((error) => { | ||
if (process.env.NODE_ENV !== 'production') { | ||
@@ -116,6 +129,13 @@ console.error( | ||
const serializeData = | ||
options.serializeData ?? | ||
client.getDefaultOptions().dehydrate?.serializeData ?? | ||
defaultTransformerFn | ||
const queries = client | ||
.getQueryCache() | ||
.getAll() | ||
.flatMap((query) => (filterQuery(query) ? [dehydrateQuery(query)] : [])) | ||
.flatMap((query) => | ||
filterQuery(query) ? [dehydrateQuery(query, serializeData)] : [], | ||
) | ||
@@ -136,6 +156,10 @@ return { mutations, queries } | ||
const queryCache = client.getQueryCache() | ||
const deserializeData = | ||
options?.defaultOptions?.deserializeData ?? | ||
client.getDefaultOptions().hydrate?.deserializeData ?? | ||
defaultTransformerFn | ||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | ||
// eslint-disable-next-line ts/no-unnecessary-condition | ||
const mutations = (dehydratedState as DehydratedState).mutations || [] | ||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | ||
// eslint-disable-next-line ts/no-unnecessary-condition | ||
const queries = (dehydratedState as DehydratedState).queries || [] | ||
@@ -158,2 +182,5 @@ | ||
const data = | ||
state.data === undefined ? state.data : deserializeData(state.data) | ||
// Do not hydrate if an existing query exists with newer data | ||
@@ -164,4 +191,7 @@ if (query) { | ||
// so that query stays in its current fetchStatus | ||
const { fetchStatus: _ignored, ...dehydratedQueryState } = state | ||
query.setState(dehydratedQueryState) | ||
const { fetchStatus: _ignored, ...serializedState } = state | ||
query.setState({ | ||
...serializedState, | ||
data, | ||
}) | ||
} | ||
@@ -183,2 +213,3 @@ } else { | ||
...state, | ||
data, | ||
fetchStatus: 'idle', | ||
@@ -190,9 +221,5 @@ }, | ||
if (promise) { | ||
const transformPromise = | ||
client.getDefaultOptions().hydrate?.transformPromise | ||
// Note: `Promise.resolve` required cause | ||
// RSC transformed promises are not thenable | ||
const initialPromise = | ||
transformPromise?.(Promise.resolve(promise)) ?? promise | ||
const initialPromise = Promise.resolve(promise).then(deserializeData) | ||
@@ -199,0 +226,0 @@ // this doesn't actually fetch - it just creates a retryer |
@@ -17,3 +17,3 @@ import { Subscribable } from './subscribable' | ||
// addEventListener does not exist in React Native, but window does | ||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition | ||
// eslint-disable-next-line ts/no-unnecessary-condition | ||
if (!isServer && window.addEventListener) { | ||
@@ -20,0 +20,0 @@ const onlineListener = () => onOnline(true) |
@@ -16,6 +16,6 @@ import { | ||
import { infiniteQueryBehavior } from './infiniteQueryBehavior' | ||
import type { DataTag, NoInfer, OmitKeyof } from './types' | ||
import type { QueryState } from './query' | ||
import type { | ||
CancelOptions, | ||
DataTag, | ||
DefaultError, | ||
@@ -33,2 +33,4 @@ DefaultOptions, | ||
MutationOptions, | ||
NoInfer, | ||
OmitKeyof, | ||
QueryClientConfig, | ||
@@ -35,0 +37,0 @@ QueryKey, |
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
2013616
28568