@tanstack/query-core 5.66.2 → 5.66.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/{hydration-De8Br-lj.d.cts → hydration-BHYO6Wdv.d.cts} +3 -1
- package/build/legacy/{hydration-De1u5VYH.d.ts → hydration-k2LfsAVL.d.ts} +3 -1
- package/build/legacy/hydration.cjs +13 -4
- package/build/legacy/hydration.cjs.map +1 -1
- package/build/legacy/hydration.d.cts +1 -1
- package/build/legacy/hydration.d.ts +1 -1
- package/build/legacy/hydration.js +12 -4
- package/build/legacy/hydration.js.map +1 -1
- package/build/legacy/index.d.cts +1 -1
- package/build/legacy/index.d.ts +1 -1
- package/build/legacy/infiniteQueryBehavior.d.cts +1 -1
- package/build/legacy/infiniteQueryBehavior.d.ts +1 -1
- package/build/legacy/infiniteQueryObserver.d.cts +1 -1
- package/build/legacy/infiniteQueryObserver.d.ts +1 -1
- package/build/legacy/mutation.d.cts +1 -1
- package/build/legacy/mutation.d.ts +1 -1
- package/build/legacy/mutationCache.d.cts +1 -1
- package/build/legacy/mutationCache.d.ts +1 -1
- package/build/legacy/mutationObserver.d.cts +1 -1
- package/build/legacy/mutationObserver.d.ts +1 -1
- package/build/legacy/queriesObserver.cjs +8 -5
- package/build/legacy/queriesObserver.cjs.map +1 -1
- package/build/legacy/queriesObserver.d.cts +1 -1
- package/build/legacy/queriesObserver.d.ts +1 -1
- package/build/legacy/queriesObserver.js +8 -5
- package/build/legacy/queriesObserver.js.map +1 -1
- package/build/legacy/query.d.cts +1 -1
- package/build/legacy/query.d.ts +1 -1
- package/build/legacy/queryCache.d.cts +1 -1
- package/build/legacy/queryCache.d.ts +1 -1
- package/build/legacy/queryClient.d.cts +1 -1
- package/build/legacy/queryClient.d.ts +1 -1
- package/build/legacy/queryObserver.d.cts +1 -1
- package/build/legacy/queryObserver.d.ts +1 -1
- package/build/legacy/retryer.d.cts +1 -1
- package/build/legacy/retryer.d.ts +1 -1
- package/build/legacy/types.d.cts +1 -1
- package/build/legacy/types.d.ts +1 -1
- package/build/legacy/utils.d.cts +1 -1
- package/build/legacy/utils.d.ts +1 -1
- package/build/modern/{hydration-De8Br-lj.d.cts → hydration-BHYO6Wdv.d.cts} +3 -1
- package/build/modern/{hydration-De1u5VYH.d.ts → hydration-k2LfsAVL.d.ts} +3 -1
- package/build/modern/hydration.cjs +11 -2
- package/build/modern/hydration.cjs.map +1 -1
- package/build/modern/hydration.d.cts +1 -1
- package/build/modern/hydration.d.ts +1 -1
- package/build/modern/hydration.js +10 -2
- package/build/modern/hydration.js.map +1 -1
- package/build/modern/index.d.cts +1 -1
- package/build/modern/index.d.ts +1 -1
- package/build/modern/infiniteQueryBehavior.d.cts +1 -1
- package/build/modern/infiniteQueryBehavior.d.ts +1 -1
- package/build/modern/infiniteQueryObserver.d.cts +1 -1
- package/build/modern/infiniteQueryObserver.d.ts +1 -1
- package/build/modern/mutation.d.cts +1 -1
- package/build/modern/mutation.d.ts +1 -1
- package/build/modern/mutationCache.d.cts +1 -1
- package/build/modern/mutationCache.d.ts +1 -1
- package/build/modern/mutationObserver.d.cts +1 -1
- package/build/modern/mutationObserver.d.ts +1 -1
- package/build/modern/queriesObserver.cjs +6 -7
- package/build/modern/queriesObserver.cjs.map +1 -1
- package/build/modern/queriesObserver.d.cts +1 -1
- package/build/modern/queriesObserver.d.ts +1 -1
- package/build/modern/queriesObserver.js +6 -7
- package/build/modern/queriesObserver.js.map +1 -1
- package/build/modern/query.d.cts +1 -1
- package/build/modern/query.d.ts +1 -1
- package/build/modern/queryCache.d.cts +1 -1
- package/build/modern/queryCache.d.ts +1 -1
- package/build/modern/queryClient.d.cts +1 -1
- package/build/modern/queryClient.d.ts +1 -1
- package/build/modern/queryObserver.d.cts +1 -1
- package/build/modern/queryObserver.d.ts +1 -1
- package/build/modern/retryer.d.cts +1 -1
- package/build/modern/retryer.d.ts +1 -1
- package/build/modern/types.d.cts +1 -1
- package/build/modern/types.d.ts +1 -1
- package/build/modern/utils.d.cts +1 -1
- package/build/modern/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/hydration.ts +19 -1
- package/src/queriesObserver.ts +6 -8
|
@@ -1319,6 +1319,7 @@ interface DehydrateOptions {
|
|
|
1319
1319
|
serializeData?: TransformerFn;
|
|
1320
1320
|
shouldDehydrateMutation?: (mutation: Mutation) => boolean;
|
|
1321
1321
|
shouldDehydrateQuery?: (query: Query) => boolean;
|
|
1322
|
+
shouldRedactErrors?: (error: unknown) => boolean;
|
|
1322
1323
|
}
|
|
1323
1324
|
interface HydrateOptions {
|
|
1324
1325
|
defaultOptions?: {
|
|
@@ -1346,7 +1347,8 @@ interface DehydratedState {
|
|
|
1346
1347
|
}
|
|
1347
1348
|
declare function defaultShouldDehydrateMutation(mutation: Mutation): boolean;
|
|
1348
1349
|
declare function defaultShouldDehydrateQuery(query: Query): boolean;
|
|
1350
|
+
declare function defaultshouldRedactErrors(_: unknown): boolean;
|
|
1349
1351
|
declare function dehydrate(client: QueryClient, options?: DehydrateOptions): DehydratedState;
|
|
1350
1352
|
declare function hydrate(client: QueryClient, dehydratedState: unknown, options?: HydrateOptions): void;
|
|
1351
1353
|
|
|
1352
|
-
export { type GetNextPageParamFunction as $, type QueryKey as A, dataTagSymbol as B, CancelledError as C, type DehydrateOptions as D, dataTagErrorSymbol as E, unsetMarker as F, type UnsetMarker as G, type HydrateOptions as H, type AnyDataTag as I, type DataTag as J, type QueryFunction as K, type StaleTime as L, MutationCache as M, type NoInfer as N, type OmitKeyof as O, type Enabled as P, QueryCache as Q, type Register as R, type SkipToken as S, type QueryPersister as T, type Updater as U, type QueryFunctionContext as V, type InitialDataFunction as W, type PlaceholderDataFunction as X, type QueriesPlaceholderDataFunction as Y, type QueryKeyHashFunction as Z, type GetPreviousPageParamFunction as _, type QueryCacheNotifyEvent as a, type CancelOptions as a$, type InfiniteData as a0, type QueryMeta as a1, type NetworkMode as a2, type NotifyOnChangeProps as a3, type QueryOptions as a4, type InitialPageParam as a5, type InfiniteQueryPageParamsOptions as a6, type ThrowOnError as a7, type QueryObserverOptions as a8, type WithRequired as a9, type QueryObserverResult as aA, type InfiniteQueryObserverBaseResult as aB, type InfiniteQueryObserverPendingResult as aC, type InfiniteQueryObserverLoadingResult as aD, type InfiniteQueryObserverLoadingErrorResult as aE, type InfiniteQueryObserverRefetchErrorResult as aF, type InfiniteQueryObserverSuccessResult as aG, type InfiniteQueryObserverPlaceholderResult as aH, type DefinedInfiniteQueryObserverResult as aI, type InfiniteQueryObserverResult as aJ, type MutationKey as aK, type MutationStatus as aL, type MutationScope as aM, type MutationMeta as aN, type MutationFunction as aO, type MutationOptions as aP, type MutationObserverOptions as aQ, type MutateOptions as aR, type MutateFunction as aS, type MutationObserverBaseResult as aT, type MutationObserverIdleResult as aU, type MutationObserverLoadingResult as aV, type MutationObserverErrorResult as aW, type MutationObserverSuccessResult as aX, type MutationObserverResult as aY, type QueryClientConfig as aZ, type DefaultOptions as a_, type Optional as aa, type DefaultedQueryObserverOptions as ab, type InfiniteQueryObserverOptions as ac, type DefaultedInfiniteQueryObserverOptions as ad, type FetchQueryOptions as ae, type EnsureQueryDataOptions as af, type EnsureInfiniteQueryDataOptions as ag, type FetchInfiniteQueryOptions as ah, type ResultOptions as ai, type RefetchOptions as aj, type InvalidateQueryFilters as ak, type RefetchQueryFilters as al, type InvalidateOptions as am, type ResetOptions as an, type FetchNextPageOptions as ao, type FetchPreviousPageOptions as ap, type QueryStatus as aq, type FetchStatus as ar, type QueryObserverBaseResult as as, type QueryObserverPendingResult as at, type QueryObserverLoadingResult as au, type QueryObserverLoadingErrorResult as av, type QueryObserverRefetchErrorResult as aw, type QueryObserverSuccessResult as ax, type QueryObserverPlaceholderResult as ay, type DefinedQueryObserverResult as az, QueryClient as b, type SetDataOptions as b0, type NotifyEventType as b1, type NotifyEvent as b2, type QueryBehavior as b3, type NotifyOptions as b4, type FetchContext as b5, type FetchDirection as b6, type FetchMeta as b7, type FetchOptions as b8, type Action$1 as b9, createRetryer as bA, type SetStateOptions as ba, fetchState as bb, type Action as bc, getDefaultState as bd, type QueryTypeFilter as be, noop as bf, functionalUpdate as bg, isValidTimeout as bh, timeUntilStale as bi, resolveStaleTime as bj, resolveEnabled as bk, hashQueryKeyByOptions as bl, partialMatchKey as bm, shallowEqualObjects as bn, isPlainArray as bo, isPlainObject as bp, sleep as bq, replaceData as br, addToEnd as bs, addToStart as bt, ensureQueryFn as bu, type QueryStore as bv, type Retryer as bw, type RetryValue as bx, type RetryDelayValue as by, canFetch as bz, QueryObserver as c, type MutationCacheNotifyEvent as d, MutationObserver as e, matchMutation as f, type MutationFilters as g, hashKey as h, isServer as i, type QueryFilters as j, keepPreviousData as k, isCancelledError as l, matchQuery as m, dehydrate as n, hydrate as o, defaultShouldDehydrateQuery as p, defaultShouldDehydrateMutation as q, replaceEqualDeep as r, skipToken as s, type QueryState as t, Query as u, type MutationState as v, Mutation as w, type DehydratedState as x, type Override as y, type DefaultError as z };
|
|
1354
|
+
export { type GetNextPageParamFunction as $, type QueryKey as A, dataTagSymbol as B, CancelledError as C, type DehydrateOptions as D, dataTagErrorSymbol as E, unsetMarker as F, type UnsetMarker as G, type HydrateOptions as H, type AnyDataTag as I, type DataTag as J, type QueryFunction as K, type StaleTime as L, MutationCache as M, type NoInfer as N, type OmitKeyof as O, type Enabled as P, QueryCache as Q, type Register as R, type SkipToken as S, type QueryPersister as T, type Updater as U, type QueryFunctionContext as V, type InitialDataFunction as W, type PlaceholderDataFunction as X, type QueriesPlaceholderDataFunction as Y, type QueryKeyHashFunction as Z, type GetPreviousPageParamFunction as _, type QueryCacheNotifyEvent as a, type CancelOptions as a$, type InfiniteData as a0, type QueryMeta as a1, type NetworkMode as a2, type NotifyOnChangeProps as a3, type QueryOptions as a4, type InitialPageParam as a5, type InfiniteQueryPageParamsOptions as a6, type ThrowOnError as a7, type QueryObserverOptions as a8, type WithRequired as a9, type QueryObserverResult as aA, type InfiniteQueryObserverBaseResult as aB, type InfiniteQueryObserverPendingResult as aC, type InfiniteQueryObserverLoadingResult as aD, type InfiniteQueryObserverLoadingErrorResult as aE, type InfiniteQueryObserverRefetchErrorResult as aF, type InfiniteQueryObserverSuccessResult as aG, type InfiniteQueryObserverPlaceholderResult as aH, type DefinedInfiniteQueryObserverResult as aI, type InfiniteQueryObserverResult as aJ, type MutationKey as aK, type MutationStatus as aL, type MutationScope as aM, type MutationMeta as aN, type MutationFunction as aO, type MutationOptions as aP, type MutationObserverOptions as aQ, type MutateOptions as aR, type MutateFunction as aS, type MutationObserverBaseResult as aT, type MutationObserverIdleResult as aU, type MutationObserverLoadingResult as aV, type MutationObserverErrorResult as aW, type MutationObserverSuccessResult as aX, type MutationObserverResult as aY, type QueryClientConfig as aZ, type DefaultOptions as a_, type Optional as aa, type DefaultedQueryObserverOptions as ab, type InfiniteQueryObserverOptions as ac, type DefaultedInfiniteQueryObserverOptions as ad, type FetchQueryOptions as ae, type EnsureQueryDataOptions as af, type EnsureInfiniteQueryDataOptions as ag, type FetchInfiniteQueryOptions as ah, type ResultOptions as ai, type RefetchOptions as aj, type InvalidateQueryFilters as ak, type RefetchQueryFilters as al, type InvalidateOptions as am, type ResetOptions as an, type FetchNextPageOptions as ao, type FetchPreviousPageOptions as ap, type QueryStatus as aq, type FetchStatus as ar, type QueryObserverBaseResult as as, type QueryObserverPendingResult as at, type QueryObserverLoadingResult as au, type QueryObserverLoadingErrorResult as av, type QueryObserverRefetchErrorResult as aw, type QueryObserverSuccessResult as ax, type QueryObserverPlaceholderResult as ay, type DefinedQueryObserverResult as az, QueryClient as b, type SetDataOptions as b0, type NotifyEventType as b1, type NotifyEvent as b2, type QueryBehavior as b3, type NotifyOptions as b4, type FetchContext as b5, type FetchDirection as b6, type FetchMeta as b7, type FetchOptions as b8, type Action$1 as b9, createRetryer as bA, defaultshouldRedactErrors as bB, type SetStateOptions as ba, fetchState as bb, type Action as bc, getDefaultState as bd, type QueryTypeFilter as be, noop as bf, functionalUpdate as bg, isValidTimeout as bh, timeUntilStale as bi, resolveStaleTime as bj, resolveEnabled as bk, hashQueryKeyByOptions as bl, partialMatchKey as bm, shallowEqualObjects as bn, isPlainArray as bo, isPlainObject as bp, sleep as bq, replaceData as br, addToEnd as bs, addToStart as bt, ensureQueryFn as bu, type QueryStore as bv, type Retryer as bw, type RetryValue as bx, type RetryDelayValue as by, canFetch as bz, QueryObserver as c, type MutationCacheNotifyEvent as d, MutationObserver as e, matchMutation as f, type MutationFilters as g, hashKey as h, isServer as i, type QueryFilters as j, keepPreviousData as k, isCancelledError as l, matchQuery as m, dehydrate as n, hydrate as o, defaultShouldDehydrateQuery as p, defaultShouldDehydrateMutation as q, replaceEqualDeep as r, skipToken as s, type QueryState as t, Query as u, type MutationState as v, Mutation as w, type DehydratedState as x, type Override as y, type DefaultError as z };
|
|
@@ -1319,6 +1319,7 @@ interface DehydrateOptions {
|
|
|
1319
1319
|
serializeData?: TransformerFn;
|
|
1320
1320
|
shouldDehydrateMutation?: (mutation: Mutation) => boolean;
|
|
1321
1321
|
shouldDehydrateQuery?: (query: Query) => boolean;
|
|
1322
|
+
shouldRedactErrors?: (error: unknown) => boolean;
|
|
1322
1323
|
}
|
|
1323
1324
|
interface HydrateOptions {
|
|
1324
1325
|
defaultOptions?: {
|
|
@@ -1346,7 +1347,8 @@ interface DehydratedState {
|
|
|
1346
1347
|
}
|
|
1347
1348
|
declare function defaultShouldDehydrateMutation(mutation: Mutation): boolean;
|
|
1348
1349
|
declare function defaultShouldDehydrateQuery(query: Query): boolean;
|
|
1350
|
+
declare function defaultshouldRedactErrors(_: unknown): boolean;
|
|
1349
1351
|
declare function dehydrate(client: QueryClient, options?: DehydrateOptions): DehydratedState;
|
|
1350
1352
|
declare function hydrate(client: QueryClient, dehydratedState: unknown, options?: HydrateOptions): void;
|
|
1351
1353
|
|
|
1352
|
-
export { type GetNextPageParamFunction as $, type QueryKey as A, dataTagSymbol as B, CancelledError as C, type DehydrateOptions as D, dataTagErrorSymbol as E, unsetMarker as F, type UnsetMarker as G, type HydrateOptions as H, type AnyDataTag as I, type DataTag as J, type QueryFunction as K, type StaleTime as L, MutationCache as M, type NoInfer as N, type OmitKeyof as O, type Enabled as P, QueryCache as Q, type Register as R, type SkipToken as S, type QueryPersister as T, type Updater as U, type QueryFunctionContext as V, type InitialDataFunction as W, type PlaceholderDataFunction as X, type QueriesPlaceholderDataFunction as Y, type QueryKeyHashFunction as Z, type GetPreviousPageParamFunction as _, type QueryCacheNotifyEvent as a, type CancelOptions as a$, type InfiniteData as a0, type QueryMeta as a1, type NetworkMode as a2, type NotifyOnChangeProps as a3, type QueryOptions as a4, type InitialPageParam as a5, type InfiniteQueryPageParamsOptions as a6, type ThrowOnError as a7, type QueryObserverOptions as a8, type WithRequired as a9, type QueryObserverResult as aA, type InfiniteQueryObserverBaseResult as aB, type InfiniteQueryObserverPendingResult as aC, type InfiniteQueryObserverLoadingResult as aD, type InfiniteQueryObserverLoadingErrorResult as aE, type InfiniteQueryObserverRefetchErrorResult as aF, type InfiniteQueryObserverSuccessResult as aG, type InfiniteQueryObserverPlaceholderResult as aH, type DefinedInfiniteQueryObserverResult as aI, type InfiniteQueryObserverResult as aJ, type MutationKey as aK, type MutationStatus as aL, type MutationScope as aM, type MutationMeta as aN, type MutationFunction as aO, type MutationOptions as aP, type MutationObserverOptions as aQ, type MutateOptions as aR, type MutateFunction as aS, type MutationObserverBaseResult as aT, type MutationObserverIdleResult as aU, type MutationObserverLoadingResult as aV, type MutationObserverErrorResult as aW, type MutationObserverSuccessResult as aX, type MutationObserverResult as aY, type QueryClientConfig as aZ, type DefaultOptions as a_, type Optional as aa, type DefaultedQueryObserverOptions as ab, type InfiniteQueryObserverOptions as ac, type DefaultedInfiniteQueryObserverOptions as ad, type FetchQueryOptions as ae, type EnsureQueryDataOptions as af, type EnsureInfiniteQueryDataOptions as ag, type FetchInfiniteQueryOptions as ah, type ResultOptions as ai, type RefetchOptions as aj, type InvalidateQueryFilters as ak, type RefetchQueryFilters as al, type InvalidateOptions as am, type ResetOptions as an, type FetchNextPageOptions as ao, type FetchPreviousPageOptions as ap, type QueryStatus as aq, type FetchStatus as ar, type QueryObserverBaseResult as as, type QueryObserverPendingResult as at, type QueryObserverLoadingResult as au, type QueryObserverLoadingErrorResult as av, type QueryObserverRefetchErrorResult as aw, type QueryObserverSuccessResult as ax, type QueryObserverPlaceholderResult as ay, type DefinedQueryObserverResult as az, QueryClient as b, type SetDataOptions as b0, type NotifyEventType as b1, type NotifyEvent as b2, type QueryBehavior as b3, type NotifyOptions as b4, type FetchContext as b5, type FetchDirection as b6, type FetchMeta as b7, type FetchOptions as b8, type Action$1 as b9, createRetryer as bA, type SetStateOptions as ba, fetchState as bb, type Action as bc, getDefaultState as bd, type QueryTypeFilter as be, noop as bf, functionalUpdate as bg, isValidTimeout as bh, timeUntilStale as bi, resolveStaleTime as bj, resolveEnabled as bk, hashQueryKeyByOptions as bl, partialMatchKey as bm, shallowEqualObjects as bn, isPlainArray as bo, isPlainObject as bp, sleep as bq, replaceData as br, addToEnd as bs, addToStart as bt, ensureQueryFn as bu, type QueryStore as bv, type Retryer as bw, type RetryValue as bx, type RetryDelayValue as by, canFetch as bz, QueryObserver as c, type MutationCacheNotifyEvent as d, MutationObserver as e, matchMutation as f, type MutationFilters as g, hashKey as h, isServer as i, type QueryFilters as j, keepPreviousData as k, isCancelledError as l, matchQuery as m, dehydrate as n, hydrate as o, defaultShouldDehydrateQuery as p, defaultShouldDehydrateMutation as q, replaceEqualDeep as r, skipToken as s, type QueryState as t, Query as u, type MutationState as v, Mutation as w, type DehydratedState as x, type Override as y, type DefaultError as z };
|
|
1354
|
+
export { type GetNextPageParamFunction as $, type QueryKey as A, dataTagSymbol as B, CancelledError as C, type DehydrateOptions as D, dataTagErrorSymbol as E, unsetMarker as F, type UnsetMarker as G, type HydrateOptions as H, type AnyDataTag as I, type DataTag as J, type QueryFunction as K, type StaleTime as L, MutationCache as M, type NoInfer as N, type OmitKeyof as O, type Enabled as P, QueryCache as Q, type Register as R, type SkipToken as S, type QueryPersister as T, type Updater as U, type QueryFunctionContext as V, type InitialDataFunction as W, type PlaceholderDataFunction as X, type QueriesPlaceholderDataFunction as Y, type QueryKeyHashFunction as Z, type GetPreviousPageParamFunction as _, type QueryCacheNotifyEvent as a, type CancelOptions as a$, type InfiniteData as a0, type QueryMeta as a1, type NetworkMode as a2, type NotifyOnChangeProps as a3, type QueryOptions as a4, type InitialPageParam as a5, type InfiniteQueryPageParamsOptions as a6, type ThrowOnError as a7, type QueryObserverOptions as a8, type WithRequired as a9, type QueryObserverResult as aA, type InfiniteQueryObserverBaseResult as aB, type InfiniteQueryObserverPendingResult as aC, type InfiniteQueryObserverLoadingResult as aD, type InfiniteQueryObserverLoadingErrorResult as aE, type InfiniteQueryObserverRefetchErrorResult as aF, type InfiniteQueryObserverSuccessResult as aG, type InfiniteQueryObserverPlaceholderResult as aH, type DefinedInfiniteQueryObserverResult as aI, type InfiniteQueryObserverResult as aJ, type MutationKey as aK, type MutationStatus as aL, type MutationScope as aM, type MutationMeta as aN, type MutationFunction as aO, type MutationOptions as aP, type MutationObserverOptions as aQ, type MutateOptions as aR, type MutateFunction as aS, type MutationObserverBaseResult as aT, type MutationObserverIdleResult as aU, type MutationObserverLoadingResult as aV, type MutationObserverErrorResult as aW, type MutationObserverSuccessResult as aX, type MutationObserverResult as aY, type QueryClientConfig as aZ, type DefaultOptions as a_, type Optional as aa, type DefaultedQueryObserverOptions as ab, type InfiniteQueryObserverOptions as ac, type DefaultedInfiniteQueryObserverOptions as ad, type FetchQueryOptions as ae, type EnsureQueryDataOptions as af, type EnsureInfiniteQueryDataOptions as ag, type FetchInfiniteQueryOptions as ah, type ResultOptions as ai, type RefetchOptions as aj, type InvalidateQueryFilters as ak, type RefetchQueryFilters as al, type InvalidateOptions as am, type ResetOptions as an, type FetchNextPageOptions as ao, type FetchPreviousPageOptions as ap, type QueryStatus as aq, type FetchStatus as ar, type QueryObserverBaseResult as as, type QueryObserverPendingResult as at, type QueryObserverLoadingResult as au, type QueryObserverLoadingErrorResult as av, type QueryObserverRefetchErrorResult as aw, type QueryObserverSuccessResult as ax, type QueryObserverPlaceholderResult as ay, type DefinedQueryObserverResult as az, QueryClient as b, type SetDataOptions as b0, type NotifyEventType as b1, type NotifyEvent as b2, type QueryBehavior as b3, type NotifyOptions as b4, type FetchContext as b5, type FetchDirection as b6, type FetchMeta as b7, type FetchOptions as b8, type Action$1 as b9, createRetryer as bA, defaultshouldRedactErrors as bB, type SetStateOptions as ba, fetchState as bb, type Action as bc, getDefaultState as bd, type QueryTypeFilter as be, noop as bf, functionalUpdate as bg, isValidTimeout as bh, timeUntilStale as bi, resolveStaleTime as bj, resolveEnabled as bk, hashQueryKeyByOptions as bl, partialMatchKey as bm, shallowEqualObjects as bn, isPlainArray as bo, isPlainObject as bp, sleep as bq, replaceData as br, addToEnd as bs, addToStart as bt, ensureQueryFn as bu, type QueryStore as bv, type Retryer as bw, type RetryValue as bx, type RetryDelayValue as by, canFetch as bz, QueryObserver as c, type MutationCacheNotifyEvent as d, MutationObserver as e, matchMutation as f, type MutationFilters as g, hashKey as h, isServer as i, type QueryFilters as j, keepPreviousData as k, isCancelledError as l, matchQuery as m, dehydrate as n, hydrate as o, defaultShouldDehydrateQuery as p, defaultShouldDehydrateMutation as q, replaceEqualDeep as r, skipToken as s, type QueryState as t, Query as u, type MutationState as v, Mutation as w, type DehydratedState as x, type Override as y, type DefaultError as z };
|
|
@@ -22,6 +22,7 @@ var hydration_exports = {};
|
|
|
22
22
|
__export(hydration_exports, {
|
|
23
23
|
defaultShouldDehydrateMutation: () => defaultShouldDehydrateMutation,
|
|
24
24
|
defaultShouldDehydrateQuery: () => defaultShouldDehydrateQuery,
|
|
25
|
+
defaultshouldRedactErrors: () => defaultshouldRedactErrors,
|
|
25
26
|
dehydrate: () => dehydrate,
|
|
26
27
|
hydrate: () => hydrate
|
|
27
28
|
});
|
|
@@ -37,7 +38,7 @@ function dehydrateMutation(mutation) {
|
|
|
37
38
|
...mutation.meta && { meta: mutation.meta }
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
|
-
function dehydrateQuery(query, serializeData) {
|
|
41
|
+
function dehydrateQuery(query, serializeData, shouldRedactErrors) {
|
|
41
42
|
var _a;
|
|
42
43
|
return {
|
|
43
44
|
state: {
|
|
@@ -50,6 +51,9 @@ function dehydrateQuery(query, serializeData) {
|
|
|
50
51
|
queryHash: query.queryHash,
|
|
51
52
|
...query.state.status === "pending" && {
|
|
52
53
|
promise: (_a = query.promise) == null ? void 0 : _a.then(serializeData).catch((error) => {
|
|
54
|
+
if (!shouldRedactErrors(error)) {
|
|
55
|
+
return Promise.reject(error);
|
|
56
|
+
}
|
|
53
57
|
if (process.env.NODE_ENV !== "production") {
|
|
54
58
|
console.error(
|
|
55
59
|
`A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`
|
|
@@ -67,16 +71,20 @@ function defaultShouldDehydrateMutation(mutation) {
|
|
|
67
71
|
function defaultShouldDehydrateQuery(query) {
|
|
68
72
|
return query.state.status === "success";
|
|
69
73
|
}
|
|
74
|
+
function defaultshouldRedactErrors(_) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
70
77
|
function dehydrate(client, options = {}) {
|
|
71
|
-
var _a, _b, _c;
|
|
78
|
+
var _a, _b, _c, _d;
|
|
72
79
|
const filterMutation = options.shouldDehydrateMutation ?? ((_a = client.getDefaultOptions().dehydrate) == null ? void 0 : _a.shouldDehydrateMutation) ?? defaultShouldDehydrateMutation;
|
|
73
80
|
const mutations = client.getMutationCache().getAll().flatMap(
|
|
74
81
|
(mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []
|
|
75
82
|
);
|
|
76
83
|
const filterQuery = options.shouldDehydrateQuery ?? ((_b = client.getDefaultOptions().dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? defaultShouldDehydrateQuery;
|
|
77
|
-
const
|
|
84
|
+
const shouldRedactErrors = options.shouldRedactErrors ?? ((_c = client.getDefaultOptions().dehydrate) == null ? void 0 : _c.shouldRedactErrors) ?? defaultshouldRedactErrors;
|
|
85
|
+
const serializeData = options.serializeData ?? ((_d = client.getDefaultOptions().dehydrate) == null ? void 0 : _d.serializeData) ?? defaultTransformerFn;
|
|
78
86
|
const queries = client.getQueryCache().getAll().flatMap(
|
|
79
|
-
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []
|
|
87
|
+
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []
|
|
80
88
|
);
|
|
81
89
|
return { mutations, queries };
|
|
82
90
|
}
|
|
@@ -143,6 +151,7 @@ function hydrate(client, dehydratedState, options) {
|
|
|
143
151
|
0 && (module.exports = {
|
|
144
152
|
defaultShouldDehydrateMutation,
|
|
145
153
|
defaultShouldDehydrateQuery,
|
|
154
|
+
defaultshouldRedactErrors,
|
|
146
155
|
dehydrate,
|
|
147
156
|
hydrate
|
|
148
157
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hydration.ts"],"sourcesContent":["import type {\n DefaultError,\n MutationKey,\n MutationMeta,\n MutationOptions,\n MutationScope,\n QueryKey,\n QueryMeta,\n QueryOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\ntype TransformerFn = (data: any) => any\nfunction defaultTransformerFn(data: any): any {\n return data\n}\n\nexport interface DehydrateOptions {\n serializeData?: TransformerFn\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n deserializeData?: TransformerFn\n queries?: QueryOptions\n mutations?: MutationOptions<unknown, DefaultError, unknown, unknown>\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n meta?: MutationMeta\n scope?: MutationScope\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n promise?: Promise<unknown>\n meta?: QueryMeta\n}\n\nexport interface DehydratedState {\n mutations: Array<DehydratedMutation>\n queries: Array<DehydratedQuery>\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...(mutation.options.scope && { scope: mutation.options.scope }),\n ...(mutation.meta && { meta: mutation.meta }),\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(\n query: Query,\n serializeData: TransformerFn,\n): DehydratedQuery {\n return {\n state: {\n ...query.state,\n ...(query.state.data !== undefined && {\n data: serializeData(query.state.data),\n }),\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...(query.state.status === 'pending' && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`,\n )\n }\n return Promise.reject(new Error('redacted'))\n }),\n }),\n ...(query.meta && { meta: query.meta }),\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ??\n defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ??\n defaultShouldDehydrateQuery\n\n const serializeData =\n options.serializeData ??\n client.getDefaultOptions().dehydrate?.serializeData ??\n defaultTransformerFn\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) =>\n filterQuery(query) ? [dehydrateQuery(query, serializeData)] : [],\n )\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n const deserializeData =\n options?.defaultOptions?.deserializeData ??\n client.getDefaultOptions().hydrate?.deserializeData ??\n defaultTransformerFn\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions,\n },\n state,\n )\n })\n\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash)\n\n const data =\n state.data === undefined ? state.data : deserializeData(state.data)\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n // omit fetchStatus from dehydrated state\n // so that query stays in its current fetchStatus\n const { fetchStatus: _ignored, ...serializedState } = state\n query.setState({\n ...serializedState,\n data,\n })\n }\n } else {\n // Restore query\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta,\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: 'idle',\n },\n )\n }\n\n if (promise) {\n // Note: `Promise.resolve` required cause\n // RSC transformed promises are not thenable\n const initialPromise = Promise.resolve(promise).then(deserializeData)\n\n // this doesn't actually fetch - it just creates a retryer\n // which will re-use the passed `initialPromise`\n void query.fetch(undefined, { initialPromise })\n }\n })\n}\n"],"mappings":"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","names":["_a","_b"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hydration.ts"],"sourcesContent":["import type {\n DefaultError,\n MutationKey,\n MutationMeta,\n MutationOptions,\n MutationScope,\n QueryKey,\n QueryMeta,\n QueryOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\ntype TransformerFn = (data: any) => any\nfunction defaultTransformerFn(data: any): any {\n return data\n}\n\nexport interface DehydrateOptions {\n serializeData?: TransformerFn\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n shouldRedactErrors?: (error: unknown) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n deserializeData?: TransformerFn\n queries?: QueryOptions\n mutations?: MutationOptions<unknown, DefaultError, unknown, unknown>\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n meta?: MutationMeta\n scope?: MutationScope\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n promise?: Promise<unknown>\n meta?: QueryMeta\n}\n\nexport interface DehydratedState {\n mutations: Array<DehydratedMutation>\n queries: Array<DehydratedQuery>\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...(mutation.options.scope && { scope: mutation.options.scope }),\n ...(mutation.meta && { meta: mutation.meta }),\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(\n query: Query,\n serializeData: TransformerFn,\n shouldRedactErrors: (error: unknown) => boolean,\n): DehydratedQuery {\n return {\n state: {\n ...query.state,\n ...(query.state.data !== undefined && {\n data: serializeData(query.state.data),\n }),\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...(query.state.status === 'pending' && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n // Reject original error if it should not be redacted\n return Promise.reject(error)\n }\n // If not in production, log original error before rejecting redacted error\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`,\n )\n }\n return Promise.reject(new Error('redacted'))\n }),\n }),\n ...(query.meta && { meta: query.meta }),\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function defaultshouldRedactErrors(_: unknown) {\n return true\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ??\n defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ??\n defaultShouldDehydrateQuery\n\n const shouldRedactErrors =\n options.shouldRedactErrors ??\n client.getDefaultOptions().dehydrate?.shouldRedactErrors ??\n defaultshouldRedactErrors\n\n const serializeData =\n options.serializeData ??\n client.getDefaultOptions().dehydrate?.serializeData ??\n defaultTransformerFn\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) =>\n filterQuery(query)\n ? [dehydrateQuery(query, serializeData, shouldRedactErrors)]\n : [],\n )\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n const deserializeData =\n options?.defaultOptions?.deserializeData ??\n client.getDefaultOptions().hydrate?.deserializeData ??\n defaultTransformerFn\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions,\n },\n state,\n )\n })\n\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash)\n\n const data =\n state.data === undefined ? state.data : deserializeData(state.data)\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n // omit fetchStatus from dehydrated state\n // so that query stays in its current fetchStatus\n const { fetchStatus: _ignored, ...serializedState } = state\n query.setState({\n ...serializedState,\n data,\n })\n }\n } else {\n // Restore query\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta,\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: 'idle',\n },\n )\n }\n\n if (promise) {\n // Note: `Promise.resolve` required cause\n // RSC transformed promises are not thenable\n const initialPromise = Promise.resolve(promise).then(deserializeData)\n\n // this doesn't actually fetch - it just creates a retryer\n // which will re-use the passed `initialPromise`\n void query.fetch(undefined, { initialPromise })\n }\n })\n}\n"],"mappings":"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","names":["_a","_b"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-
|
|
1
|
+
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, bB as defaultshouldRedactErrors, n as dehydrate, o as hydrate } from './hydration-BHYO6Wdv.cjs';
|
|
2
2
|
import './removable.cjs';
|
|
3
3
|
import './subscribable.cjs';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-
|
|
1
|
+
export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, bB as defaultshouldRedactErrors, n as dehydrate, o as hydrate } from './hydration-k2LfsAVL.js';
|
|
2
2
|
import './removable.js';
|
|
3
3
|
import './subscribable.js';
|
|
@@ -12,7 +12,7 @@ function dehydrateMutation(mutation) {
|
|
|
12
12
|
...mutation.meta && { meta: mutation.meta }
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
function dehydrateQuery(query, serializeData) {
|
|
15
|
+
function dehydrateQuery(query, serializeData, shouldRedactErrors) {
|
|
16
16
|
var _a;
|
|
17
17
|
return {
|
|
18
18
|
state: {
|
|
@@ -25,6 +25,9 @@ function dehydrateQuery(query, serializeData) {
|
|
|
25
25
|
queryHash: query.queryHash,
|
|
26
26
|
...query.state.status === "pending" && {
|
|
27
27
|
promise: (_a = query.promise) == null ? void 0 : _a.then(serializeData).catch((error) => {
|
|
28
|
+
if (!shouldRedactErrors(error)) {
|
|
29
|
+
return Promise.reject(error);
|
|
30
|
+
}
|
|
28
31
|
if (process.env.NODE_ENV !== "production") {
|
|
29
32
|
console.error(
|
|
30
33
|
`A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`
|
|
@@ -42,16 +45,20 @@ function defaultShouldDehydrateMutation(mutation) {
|
|
|
42
45
|
function defaultShouldDehydrateQuery(query) {
|
|
43
46
|
return query.state.status === "success";
|
|
44
47
|
}
|
|
48
|
+
function defaultshouldRedactErrors(_) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
45
51
|
function dehydrate(client, options = {}) {
|
|
46
|
-
var _a, _b, _c;
|
|
52
|
+
var _a, _b, _c, _d;
|
|
47
53
|
const filterMutation = options.shouldDehydrateMutation ?? ((_a = client.getDefaultOptions().dehydrate) == null ? void 0 : _a.shouldDehydrateMutation) ?? defaultShouldDehydrateMutation;
|
|
48
54
|
const mutations = client.getMutationCache().getAll().flatMap(
|
|
49
55
|
(mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []
|
|
50
56
|
);
|
|
51
57
|
const filterQuery = options.shouldDehydrateQuery ?? ((_b = client.getDefaultOptions().dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? defaultShouldDehydrateQuery;
|
|
52
|
-
const
|
|
58
|
+
const shouldRedactErrors = options.shouldRedactErrors ?? ((_c = client.getDefaultOptions().dehydrate) == null ? void 0 : _c.shouldRedactErrors) ?? defaultshouldRedactErrors;
|
|
59
|
+
const serializeData = options.serializeData ?? ((_d = client.getDefaultOptions().dehydrate) == null ? void 0 : _d.serializeData) ?? defaultTransformerFn;
|
|
53
60
|
const queries = client.getQueryCache().getAll().flatMap(
|
|
54
|
-
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []
|
|
61
|
+
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []
|
|
55
62
|
);
|
|
56
63
|
return { mutations, queries };
|
|
57
64
|
}
|
|
@@ -117,6 +124,7 @@ function hydrate(client, dehydratedState, options) {
|
|
|
117
124
|
export {
|
|
118
125
|
defaultShouldDehydrateMutation,
|
|
119
126
|
defaultShouldDehydrateQuery,
|
|
127
|
+
defaultshouldRedactErrors,
|
|
120
128
|
dehydrate,
|
|
121
129
|
hydrate
|
|
122
130
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hydration.ts"],"sourcesContent":["import type {\n DefaultError,\n MutationKey,\n MutationMeta,\n MutationOptions,\n MutationScope,\n QueryKey,\n QueryMeta,\n QueryOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\ntype TransformerFn = (data: any) => any\nfunction defaultTransformerFn(data: any): any {\n return data\n}\n\nexport interface DehydrateOptions {\n serializeData?: TransformerFn\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n deserializeData?: TransformerFn\n queries?: QueryOptions\n mutations?: MutationOptions<unknown, DefaultError, unknown, unknown>\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n meta?: MutationMeta\n scope?: MutationScope\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n promise?: Promise<unknown>\n meta?: QueryMeta\n}\n\nexport interface DehydratedState {\n mutations: Array<DehydratedMutation>\n queries: Array<DehydratedQuery>\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...(mutation.options.scope && { scope: mutation.options.scope }),\n ...(mutation.meta && { meta: mutation.meta }),\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(\n query: Query,\n serializeData: TransformerFn,\n): DehydratedQuery {\n return {\n state: {\n ...query.state,\n ...(query.state.data !== undefined && {\n data: serializeData(query.state.data),\n }),\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...(query.state.status === 'pending' && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`,\n )\n }\n return Promise.reject(new Error('redacted'))\n }),\n }),\n ...(query.meta && { meta: query.meta }),\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ??\n defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ??\n defaultShouldDehydrateQuery\n\n const serializeData =\n options.serializeData ??\n client.getDefaultOptions().dehydrate?.serializeData ??\n defaultTransformerFn\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) =>\n filterQuery(query) ? [dehydrateQuery(query, serializeData)] : [],\n )\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n const deserializeData =\n options?.defaultOptions?.deserializeData ??\n client.getDefaultOptions().hydrate?.deserializeData ??\n defaultTransformerFn\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions,\n },\n state,\n )\n })\n\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash)\n\n const data =\n state.data === undefined ? state.data : deserializeData(state.data)\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n // omit fetchStatus from dehydrated state\n // so that query stays in its current fetchStatus\n const { fetchStatus: _ignored, ...serializedState } = state\n query.setState({\n ...serializedState,\n data,\n })\n }\n } else {\n // Restore query\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta,\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: 'idle',\n },\n )\n }\n\n if (promise) {\n // Note: `Promise.resolve` required cause\n // RSC transformed promises are not thenable\n const initialPromise = Promise.resolve(promise).then(deserializeData)\n\n // this doesn't actually fetch - it just creates a retryer\n // which will re-use the passed `initialPromise`\n void query.fetch(undefined, { initialPromise })\n }\n })\n}\n"],"mappings":"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","names":["_a","_b"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hydration.ts"],"sourcesContent":["import type {\n DefaultError,\n MutationKey,\n MutationMeta,\n MutationOptions,\n MutationScope,\n QueryKey,\n QueryMeta,\n QueryOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\ntype TransformerFn = (data: any) => any\nfunction defaultTransformerFn(data: any): any {\n return data\n}\n\nexport interface DehydrateOptions {\n serializeData?: TransformerFn\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n shouldRedactErrors?: (error: unknown) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n deserializeData?: TransformerFn\n queries?: QueryOptions\n mutations?: MutationOptions<unknown, DefaultError, unknown, unknown>\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n meta?: MutationMeta\n scope?: MutationScope\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n promise?: Promise<unknown>\n meta?: QueryMeta\n}\n\nexport interface DehydratedState {\n mutations: Array<DehydratedMutation>\n queries: Array<DehydratedQuery>\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...(mutation.options.scope && { scope: mutation.options.scope }),\n ...(mutation.meta && { meta: mutation.meta }),\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(\n query: Query,\n serializeData: TransformerFn,\n shouldRedactErrors: (error: unknown) => boolean,\n): DehydratedQuery {\n return {\n state: {\n ...query.state,\n ...(query.state.data !== undefined && {\n data: serializeData(query.state.data),\n }),\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...(query.state.status === 'pending' && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n // Reject original error if it should not be redacted\n return Promise.reject(error)\n }\n // If not in production, log original error before rejecting redacted error\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`,\n )\n }\n return Promise.reject(new Error('redacted'))\n }),\n }),\n ...(query.meta && { meta: query.meta }),\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function defaultshouldRedactErrors(_: unknown) {\n return true\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ??\n defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ??\n client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ??\n defaultShouldDehydrateQuery\n\n const shouldRedactErrors =\n options.shouldRedactErrors ??\n client.getDefaultOptions().dehydrate?.shouldRedactErrors ??\n defaultshouldRedactErrors\n\n const serializeData =\n options.serializeData ??\n client.getDefaultOptions().dehydrate?.serializeData ??\n defaultTransformerFn\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) =>\n filterQuery(query)\n ? [dehydrateQuery(query, serializeData, shouldRedactErrors)]\n : [],\n )\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n const deserializeData =\n options?.defaultOptions?.deserializeData ??\n client.getDefaultOptions().hydrate?.deserializeData ??\n defaultTransformerFn\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions,\n },\n state,\n )\n })\n\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash)\n\n const data =\n state.data === undefined ? state.data : deserializeData(state.data)\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n // omit fetchStatus from dehydrated state\n // so that query stays in its current fetchStatus\n const { fetchStatus: _ignored, ...serializedState } = state\n query.setState({\n ...serializedState,\n data,\n })\n }\n } else {\n // Restore query\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta,\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: 'idle',\n },\n )\n }\n\n if (promise) {\n // Note: `Promise.resolve` required cause\n // RSC transformed promises are not thenable\n const initialPromise = Promise.resolve(promise).then(deserializeData)\n\n // this doesn't actually fetch - it just creates a retryer\n // which will re-use the passed `initialPromise`\n void query.fetch(undefined, { initialPromise })\n }\n })\n}\n"],"mappings":"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","names":["_a","_b"]}
|
package/build/legacy/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { I as AnyDataTag, a$ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, a_ as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aI as DefinedInfiniteQueryObserverResult, az as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aB as InfiniteQueryObserverBaseResult, aE as InfiniteQueryObserverLoadingErrorResult, aD as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aC as InfiniteQueryObserverPendingResult, aH as InfiniteQueryObserverPlaceholderResult, aF as InfiniteQueryObserverRefetchErrorResult, aJ as InfiniteQueryObserverResult, aG as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aS as MutateFunction, aR as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aO as MutationFunction, aK as MutationKey, aN as MutationMeta, e as MutationObserver, aT as MutationObserverBaseResult, aW as MutationObserverErrorResult, aU as MutationObserverIdleResult, aV as MutationObserverLoadingResult, aQ as MutationObserverOptions, aY as MutationObserverResult, aX as MutationObserverSuccessResult, aP as MutationOptions, aM as MutationScope, v as MutationState, aL as MutationStatus, a2 as NetworkMode, N as NoInfer, b2 as NotifyEvent, b1 as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aZ as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, ay as QueryObserverPlaceholderResult, aw as QueryObserverRefetchErrorResult, aA as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, b0 as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B 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, F as unsetMarker } from './hydration-
|
|
1
|
+
export { I as AnyDataTag, a$ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, a_ as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aI as DefinedInfiniteQueryObserverResult, az as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aB as InfiniteQueryObserverBaseResult, aE as InfiniteQueryObserverLoadingErrorResult, aD as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aC as InfiniteQueryObserverPendingResult, aH as InfiniteQueryObserverPlaceholderResult, aF as InfiniteQueryObserverRefetchErrorResult, aJ as InfiniteQueryObserverResult, aG as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aS as MutateFunction, aR as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aO as MutationFunction, aK as MutationKey, aN as MutationMeta, e as MutationObserver, aT as MutationObserverBaseResult, aW as MutationObserverErrorResult, aU as MutationObserverIdleResult, aV as MutationObserverLoadingResult, aQ as MutationObserverOptions, aY as MutationObserverResult, aX as MutationObserverSuccessResult, aP as MutationOptions, aM as MutationScope, v as MutationState, aL as MutationStatus, a2 as NetworkMode, N as NoInfer, b2 as NotifyEvent, b1 as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aZ as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, ay as QueryObserverPlaceholderResult, aw as QueryObserverRefetchErrorResult, aA as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, b0 as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B 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, F as unsetMarker } from './hydration-BHYO6Wdv.cjs';
|
|
2
2
|
export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.cjs';
|
|
3
3
|
export { InfiniteQueryObserver } from './infiniteQueryObserver.cjs';
|
|
4
4
|
export { notifyManager } from './notifyManager.cjs';
|
package/build/legacy/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { I as AnyDataTag, a$ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, a_ as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aI as DefinedInfiniteQueryObserverResult, az as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aB as InfiniteQueryObserverBaseResult, aE as InfiniteQueryObserverLoadingErrorResult, aD as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aC as InfiniteQueryObserverPendingResult, aH as InfiniteQueryObserverPlaceholderResult, aF as InfiniteQueryObserverRefetchErrorResult, aJ as InfiniteQueryObserverResult, aG as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aS as MutateFunction, aR as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aO as MutationFunction, aK as MutationKey, aN as MutationMeta, e as MutationObserver, aT as MutationObserverBaseResult, aW as MutationObserverErrorResult, aU as MutationObserverIdleResult, aV as MutationObserverLoadingResult, aQ as MutationObserverOptions, aY as MutationObserverResult, aX as MutationObserverSuccessResult, aP as MutationOptions, aM as MutationScope, v as MutationState, aL as MutationStatus, a2 as NetworkMode, N as NoInfer, b2 as NotifyEvent, b1 as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aZ as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, ay as QueryObserverPlaceholderResult, aw as QueryObserverRefetchErrorResult, aA as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, b0 as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B 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, F as unsetMarker } from './hydration-
|
|
1
|
+
export { I as AnyDataTag, a$ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, a_ as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aI as DefinedInfiniteQueryObserverResult, az as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aB as InfiniteQueryObserverBaseResult, aE as InfiniteQueryObserverLoadingErrorResult, aD as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aC as InfiniteQueryObserverPendingResult, aH as InfiniteQueryObserverPlaceholderResult, aF as InfiniteQueryObserverRefetchErrorResult, aJ as InfiniteQueryObserverResult, aG as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aS as MutateFunction, aR as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aO as MutationFunction, aK as MutationKey, aN as MutationMeta, e as MutationObserver, aT as MutationObserverBaseResult, aW as MutationObserverErrorResult, aU as MutationObserverIdleResult, aV as MutationObserverLoadingResult, aQ as MutationObserverOptions, aY as MutationObserverResult, aX as MutationObserverSuccessResult, aP as MutationOptions, aM as MutationScope, v as MutationState, aL as MutationStatus, a2 as NetworkMode, N as NoInfer, b2 as NotifyEvent, b1 as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aZ as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, ay as QueryObserverPlaceholderResult, aw as QueryObserverRefetchErrorResult, aA as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, b0 as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B 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, F as unsetMarker } from './hydration-k2LfsAVL.js';
|
|
2
2
|
export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.js';
|
|
3
3
|
export { InfiniteQueryObserver } from './infiniteQueryObserver.js';
|
|
4
4
|
export { notifyManager } from './notifyManager.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b3 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-
|
|
1
|
+
import { b3 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-BHYO6Wdv.cjs';
|
|
2
2
|
import './removable.cjs';
|
|
3
3
|
import './subscribable.cjs';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b3 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-
|
|
1
|
+
import { b3 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-k2LfsAVL.js';
|
|
2
2
|
import './removable.js';
|
|
3
3
|
import './subscribable.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aJ as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b4 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-
|
|
1
|
+
import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aJ as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b4 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-BHYO6Wdv.cjs';
|
|
2
2
|
import { Subscribable } from './subscribable.cjs';
|
|
3
3
|
import './removable.cjs';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aJ as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b4 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-
|
|
1
|
+
import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aJ as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b4 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-k2LfsAVL.js';
|
|
2
2
|
import { Subscribable } from './subscribable.js';
|
|
3
3
|
import './removable.js';
|
|
4
4
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './removable.cjs';
|
|
2
|
-
export { bc as Action, w as Mutation, v as MutationState, bd as getDefaultState } from './hydration-
|
|
2
|
+
export { bc as Action, w as Mutation, v as MutationState, bd as getDefaultState } from './hydration-BHYO6Wdv.cjs';
|
|
3
3
|
import './subscribable.cjs';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './removable.js';
|
|
2
|
-
export { bc as Action, w as Mutation, v as MutationState, bd as getDefaultState } from './hydration-
|
|
2
|
+
export { bc as Action, w as Mutation, v as MutationState, bd as getDefaultState } from './hydration-k2LfsAVL.js';
|
|
3
3
|
import './subscribable.js';
|
|
@@ -57,7 +57,7 @@ function replaceAt(array, index, value) {
|
|
|
57
57
|
copy[index] = value;
|
|
58
58
|
return copy;
|
|
59
59
|
}
|
|
60
|
-
var _client, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _trackResult, trackResult_fn, _combineResult, combineResult_fn, _findMatchingObservers, findMatchingObservers_fn, _onUpdate, onUpdate_fn, _notify, notify_fn;
|
|
60
|
+
var _client, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _observerMatches, _trackResult, trackResult_fn, _combineResult, combineResult_fn, _findMatchingObservers, findMatchingObservers_fn, _onUpdate, onUpdate_fn, _notify, notify_fn;
|
|
61
61
|
var QueriesObserver = class extends import_subscribable.Subscribable {
|
|
62
62
|
constructor(client, queries, options) {
|
|
63
63
|
super();
|
|
@@ -74,6 +74,7 @@ var QueriesObserver = class extends import_subscribable.Subscribable {
|
|
|
74
74
|
__privateAdd(this, _combinedResult, void 0);
|
|
75
75
|
__privateAdd(this, _lastCombine, void 0);
|
|
76
76
|
__privateAdd(this, _lastResult, void 0);
|
|
77
|
+
__privateAdd(this, _observerMatches, []);
|
|
77
78
|
__privateSet(this, _client, client);
|
|
78
79
|
__privateSet(this, _options, options);
|
|
79
80
|
__privateSet(this, _queries, []);
|
|
@@ -117,6 +118,7 @@ var QueriesObserver = class extends import_subscribable.Subscribable {
|
|
|
117
118
|
import_notifyManager.notifyManager.batch(() => {
|
|
118
119
|
const prevObservers = __privateGet(this, _observers);
|
|
119
120
|
const newObserverMatches = __privateMethod(this, _findMatchingObservers, findMatchingObservers_fn).call(this, __privateGet(this, _queries));
|
|
121
|
+
__privateSet(this, _observerMatches, newObserverMatches);
|
|
120
122
|
newObserverMatches.forEach(
|
|
121
123
|
(match) => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions)
|
|
122
124
|
);
|
|
@@ -166,7 +168,7 @@ var QueriesObserver = class extends import_subscribable.Subscribable {
|
|
|
166
168
|
return __privateMethod(this, _combineResult, combineResult_fn).call(this, r ?? result, combine);
|
|
167
169
|
},
|
|
168
170
|
() => {
|
|
169
|
-
return __privateMethod(this, _trackResult, trackResult_fn).call(this, result,
|
|
171
|
+
return __privateMethod(this, _trackResult, trackResult_fn).call(this, result, matches);
|
|
170
172
|
}
|
|
171
173
|
];
|
|
172
174
|
}
|
|
@@ -179,9 +181,9 @@ _observers = new WeakMap();
|
|
|
179
181
|
_combinedResult = new WeakMap();
|
|
180
182
|
_lastCombine = new WeakMap();
|
|
181
183
|
_lastResult = new WeakMap();
|
|
184
|
+
_observerMatches = new WeakMap();
|
|
182
185
|
_trackResult = new WeakSet();
|
|
183
|
-
trackResult_fn = function(result,
|
|
184
|
-
const matches = __privateMethod(this, _findMatchingObservers, findMatchingObservers_fn).call(this, queries);
|
|
186
|
+
trackResult_fn = function(result, matches) {
|
|
185
187
|
return matches.map((match, index) => {
|
|
186
188
|
const observerResult = result[index];
|
|
187
189
|
return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {
|
|
@@ -242,7 +244,8 @@ notify_fn = function() {
|
|
|
242
244
|
var _a;
|
|
243
245
|
if (this.hasListeners()) {
|
|
244
246
|
const previousResult = __privateGet(this, _combinedResult);
|
|
245
|
-
const
|
|
247
|
+
const newTracked = __privateMethod(this, _trackResult, trackResult_fn).call(this, __privateGet(this, _result), __privateGet(this, _observerMatches));
|
|
248
|
+
const newResult = __privateMethod(this, _combineResult, combineResult_fn).call(this, newTracked, (_a = __privateGet(this, _options)) == null ? void 0 : _a.combine);
|
|
246
249
|
if (previousResult !== newResult) {
|
|
247
250
|
import_notifyManager.notifyManager.batch(() => {
|
|
248
251
|
this.listeners.forEach((listener) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\nimport type {\n DefaultedQueryObserverOptions,\n QueryObserverOptions,\n QueryObserverResult,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\n\nfunction difference<T>(array1: Array<T>, array2: Array<T>): Array<T> {\n return array1.filter((x) => !array2.includes(x))\n}\n\nfunction replaceAt<T>(array: Array<T>, index: number, value: T): Array<T> {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: Array<QueryObserverResult>) => void\n\ntype CombineFn<TCombinedResult> = (\n result: Array<QueryObserverResult>,\n) => TCombinedResult\n\nexport interface QueriesObserverOptions<\n TCombinedResult = Array<QueryObserverResult>,\n> {\n combine?: CombineFn<TCombinedResult>\n}\n\nexport class QueriesObserver<\n TCombinedResult = Array<QueryObserverResult>,\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: Array<QueryObserverResult>\n #queries: Array<QueryObserverOptions>\n #options?: QueriesObserverOptions<TCombinedResult>\n #observers: Array<QueryObserver>\n #combinedResult?: TCombinedResult\n #lastCombine?: CombineFn<TCombinedResult>\n #lastResult?: Array<QueryObserverResult>\n\n constructor(\n client: QueryClient,\n queries: Array<QueryObserverOptions<any, any, any, any, any>>,\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#options = options\n this.#queries = []\n this.#observers = []\n this.#result = []\n\n this.setQueries(queries)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: Array<QueryObserverOptions>,\n options?: QueriesObserverOptions<TCombinedResult>,\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n this.#options = options\n\n if (process.env.NODE_ENV !== 'production') {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash,\n )\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n '[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.',\n )\n }\n }\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): Array<QueryObserverResult> {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: Array<QueryObserverOptions>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): [\n rawResult: Array<QueryObserverResult>,\n combineResult: (r?: Array<QueryObserverResult>) => TCombinedResult,\n trackResult: () => Array<QueryObserverResult>,\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n\n return [\n result,\n (r?: Array<QueryObserverResult>) => {\n return this.#combineResult(r ?? result, combine)\n },\n () => {\n return this.#trackResult(result, queries)\n },\n ]\n }\n\n #trackResult(\n result: Array<QueryObserverResult>,\n queries: Array<QueryObserverOptions>,\n ) {\n const matches = this.#findMatchingObservers(queries)\n\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult, (accessedProp) => {\n // track property on all observers to ensure proper (synchronized) tracking (#7000)\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp)\n })\n })\n : observerResult\n })\n }\n\n #combineResult(\n input: Array<QueryObserverResult>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): TCombinedResult {\n if (combine) {\n if (\n !this.#combinedResult ||\n this.#result !== this.#lastResult ||\n combine !== this.#lastCombine\n ) {\n this.#lastCombine = combine\n this.#lastResult = this.#result\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input),\n )\n }\n\n return this.#combinedResult\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: Array<QueryObserverOptions>,\n ): Array<QueryObserverMatch> {\n const prevObserversMap = new Map(\n this.#observers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const observers: Array<QueryObserverMatch> = []\n\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match) {\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer: match,\n })\n } else {\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer: new QueryObserver(this.#client, defaultedOptions),\n })\n }\n })\n\n return observers\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult\n const newResult = this.#combineResult(\n this.#trackResult(this.#result, this.#queries),\n this.#options?.combine,\n )\n\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n }\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\nimport type {\n DefaultedQueryObserverOptions,\n QueryObserverOptions,\n QueryObserverResult,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\n\nfunction difference<T>(array1: Array<T>, array2: Array<T>): Array<T> {\n return array1.filter((x) => !array2.includes(x))\n}\n\nfunction replaceAt<T>(array: Array<T>, index: number, value: T): Array<T> {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: Array<QueryObserverResult>) => void\n\ntype CombineFn<TCombinedResult> = (\n result: Array<QueryObserverResult>,\n) => TCombinedResult\n\nexport interface QueriesObserverOptions<\n TCombinedResult = Array<QueryObserverResult>,\n> {\n combine?: CombineFn<TCombinedResult>\n}\n\nexport class QueriesObserver<\n TCombinedResult = Array<QueryObserverResult>,\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: Array<QueryObserverResult>\n #queries: Array<QueryObserverOptions>\n #options?: QueriesObserverOptions<TCombinedResult>\n #observers: Array<QueryObserver>\n #combinedResult?: TCombinedResult\n #lastCombine?: CombineFn<TCombinedResult>\n #lastResult?: Array<QueryObserverResult>\n #observerMatches: Array<QueryObserverMatch> = []\n\n constructor(\n client: QueryClient,\n queries: Array<QueryObserverOptions<any, any, any, any, any>>,\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#options = options\n this.#queries = []\n this.#observers = []\n this.#result = []\n\n this.setQueries(queries)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: Array<QueryObserverOptions>,\n options?: QueriesObserverOptions<TCombinedResult>,\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n this.#options = options\n\n if (process.env.NODE_ENV !== 'production') {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash,\n )\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n '[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.',\n )\n }\n }\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n this.#observerMatches = newObserverMatches\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): Array<QueryObserverResult> {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: Array<QueryObserverOptions>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): [\n rawResult: Array<QueryObserverResult>,\n combineResult: (r?: Array<QueryObserverResult>) => TCombinedResult,\n trackResult: () => Array<QueryObserverResult>,\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n\n return [\n result,\n (r?: Array<QueryObserverResult>) => {\n return this.#combineResult(r ?? result, combine)\n },\n () => {\n return this.#trackResult(result, matches)\n },\n ]\n }\n\n #trackResult(\n result: Array<QueryObserverResult>,\n matches: Array<QueryObserverMatch>,\n ) {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult, (accessedProp) => {\n // track property on all observers to ensure proper (synchronized) tracking (#7000)\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp)\n })\n })\n : observerResult\n })\n }\n\n #combineResult(\n input: Array<QueryObserverResult>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): TCombinedResult {\n if (combine) {\n if (\n !this.#combinedResult ||\n this.#result !== this.#lastResult ||\n combine !== this.#lastCombine\n ) {\n this.#lastCombine = combine\n this.#lastResult = this.#result\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input),\n )\n }\n\n return this.#combinedResult\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: Array<QueryObserverOptions>,\n ): Array<QueryObserverMatch> {\n const prevObserversMap = new Map(\n this.#observers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const observers: Array<QueryObserverMatch> = []\n\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match) {\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer: match,\n })\n } else {\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer: new QueryObserver(this.#client, defaultedOptions),\n })\n }\n })\n\n return observers\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult\n const newTracked = this.#trackResult(this.#result, this.#observerMatches)\n const newResult = this.#combineResult(newTracked, this.#options?.combine)\n\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n }\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aA as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b4 as NotifyOptions, u as Query, c as QueryObserver } from './hydration-
|
|
1
|
+
import { aA as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b4 as NotifyOptions, u as Query, c as QueryObserver } from './hydration-BHYO6Wdv.cjs';
|
|
2
2
|
import { Subscribable } from './subscribable.cjs';
|
|
3
3
|
import './removable.cjs';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aA as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b4 as NotifyOptions, u as Query, c as QueryObserver } from './hydration-
|
|
1
|
+
import { aA as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b4 as NotifyOptions, u as Query, c as QueryObserver } from './hydration-k2LfsAVL.js';
|
|
2
2
|
import { Subscribable } from './subscribable.js';
|
|
3
3
|
import './removable.js';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ function replaceAt(array, index, value) {
|
|
|
18
18
|
copy[index] = value;
|
|
19
19
|
return copy;
|
|
20
20
|
}
|
|
21
|
-
var _client, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _trackResult, trackResult_fn, _combineResult, combineResult_fn, _findMatchingObservers, findMatchingObservers_fn, _onUpdate, onUpdate_fn, _notify, notify_fn;
|
|
21
|
+
var _client, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _observerMatches, _trackResult, trackResult_fn, _combineResult, combineResult_fn, _findMatchingObservers, findMatchingObservers_fn, _onUpdate, onUpdate_fn, _notify, notify_fn;
|
|
22
22
|
var QueriesObserver = class extends Subscribable {
|
|
23
23
|
constructor(client, queries, options) {
|
|
24
24
|
super();
|
|
@@ -35,6 +35,7 @@ var QueriesObserver = class extends Subscribable {
|
|
|
35
35
|
__privateAdd(this, _combinedResult, void 0);
|
|
36
36
|
__privateAdd(this, _lastCombine, void 0);
|
|
37
37
|
__privateAdd(this, _lastResult, void 0);
|
|
38
|
+
__privateAdd(this, _observerMatches, []);
|
|
38
39
|
__privateSet(this, _client, client);
|
|
39
40
|
__privateSet(this, _options, options);
|
|
40
41
|
__privateSet(this, _queries, []);
|
|
@@ -78,6 +79,7 @@ var QueriesObserver = class extends Subscribable {
|
|
|
78
79
|
notifyManager.batch(() => {
|
|
79
80
|
const prevObservers = __privateGet(this, _observers);
|
|
80
81
|
const newObserverMatches = __privateMethod(this, _findMatchingObservers, findMatchingObservers_fn).call(this, __privateGet(this, _queries));
|
|
82
|
+
__privateSet(this, _observerMatches, newObserverMatches);
|
|
81
83
|
newObserverMatches.forEach(
|
|
82
84
|
(match) => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions)
|
|
83
85
|
);
|
|
@@ -127,7 +129,7 @@ var QueriesObserver = class extends Subscribable {
|
|
|
127
129
|
return __privateMethod(this, _combineResult, combineResult_fn).call(this, r ?? result, combine);
|
|
128
130
|
},
|
|
129
131
|
() => {
|
|
130
|
-
return __privateMethod(this, _trackResult, trackResult_fn).call(this, result,
|
|
132
|
+
return __privateMethod(this, _trackResult, trackResult_fn).call(this, result, matches);
|
|
131
133
|
}
|
|
132
134
|
];
|
|
133
135
|
}
|
|
@@ -140,9 +142,9 @@ _observers = new WeakMap();
|
|
|
140
142
|
_combinedResult = new WeakMap();
|
|
141
143
|
_lastCombine = new WeakMap();
|
|
142
144
|
_lastResult = new WeakMap();
|
|
145
|
+
_observerMatches = new WeakMap();
|
|
143
146
|
_trackResult = new WeakSet();
|
|
144
|
-
trackResult_fn = function(result,
|
|
145
|
-
const matches = __privateMethod(this, _findMatchingObservers, findMatchingObservers_fn).call(this, queries);
|
|
147
|
+
trackResult_fn = function(result, matches) {
|
|
146
148
|
return matches.map((match, index) => {
|
|
147
149
|
const observerResult = result[index];
|
|
148
150
|
return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {
|
|
@@ -203,7 +205,8 @@ notify_fn = function() {
|
|
|
203
205
|
var _a;
|
|
204
206
|
if (this.hasListeners()) {
|
|
205
207
|
const previousResult = __privateGet(this, _combinedResult);
|
|
206
|
-
const
|
|
208
|
+
const newTracked = __privateMethod(this, _trackResult, trackResult_fn).call(this, __privateGet(this, _result), __privateGet(this, _observerMatches));
|
|
209
|
+
const newResult = __privateMethod(this, _combineResult, combineResult_fn).call(this, newTracked, (_a = __privateGet(this, _options)) == null ? void 0 : _a.combine);
|
|
207
210
|
if (previousResult !== newResult) {
|
|
208
211
|
notifyManager.batch(() => {
|
|
209
212
|
this.listeners.forEach((listener) => {
|