@tanstack/query-core 5.47.0 → 5.49.0
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/focusManager.cjs.map +1 -1
- package/build/legacy/focusManager.js.map +1 -1
- package/build/legacy/{hydration-BZ2M_xzi.d.ts → hydration-ByKLEQMr.d.ts} +9 -4
- package/build/legacy/{hydration-CwKUqoFl.d.cts → hydration-DfqGmvZi.d.cts} +9 -4
- package/build/legacy/hydration.cjs +32 -15
- 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 +32 -15
- 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/onlineManager.cjs.map +1 -1
- package/build/legacy/onlineManager.js.map +1 -1
- package/build/legacy/queriesObserver.d.cts +1 -1
- package/build/legacy/queriesObserver.d.ts +1 -1
- package/build/legacy/query.cjs +3 -1
- package/build/legacy/query.cjs.map +1 -1
- package/build/legacy/query.d.cts +1 -1
- package/build/legacy/query.d.ts +1 -1
- package/build/legacy/query.js +10 -2
- package/build/legacy/query.js.map +1 -1
- package/build/legacy/queryCache.d.cts +1 -1
- package/build/legacy/queryCache.d.ts +1 -1
- package/build/legacy/queryClient.cjs.map +1 -1
- package/build/legacy/queryClient.d.cts +1 -1
- package/build/legacy/queryClient.d.ts +1 -1
- package/build/legacy/queryClient.js.map +1 -1
- package/build/legacy/queryObserver.cjs +11 -9
- package/build/legacy/queryObserver.cjs.map +1 -1
- package/build/legacy/queryObserver.d.cts +1 -1
- package/build/legacy/queryObserver.d.ts +1 -1
- package/build/legacy/queryObserver.js +12 -9
- package/build/legacy/queryObserver.js.map +1 -1
- package/build/legacy/retryer.d.cts +1 -1
- package/build/legacy/retryer.d.ts +1 -1
- package/build/legacy/types.cjs.map +1 -1
- package/build/legacy/types.d.cts +1 -1
- package/build/legacy/types.d.ts +1 -1
- package/build/legacy/utils.cjs +5 -0
- package/build/legacy/utils.cjs.map +1 -1
- package/build/legacy/utils.d.cts +1 -1
- package/build/legacy/utils.d.ts +1 -1
- package/build/legacy/utils.js +4 -0
- package/build/legacy/utils.js.map +1 -1
- package/build/modern/focusManager.cjs.map +1 -1
- package/build/modern/focusManager.js.map +1 -1
- package/build/modern/{hydration-BZ2M_xzi.d.ts → hydration-ByKLEQMr.d.ts} +9 -4
- package/build/modern/{hydration-CwKUqoFl.d.cts → hydration-DfqGmvZi.d.cts} +9 -4
- package/build/modern/hydration.cjs +24 -8
- 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 +24 -8
- 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/onlineManager.cjs.map +1 -1
- package/build/modern/onlineManager.js.map +1 -1
- package/build/modern/queriesObserver.d.cts +1 -1
- package/build/modern/queriesObserver.d.ts +1 -1
- package/build/modern/query.cjs +3 -1
- package/build/modern/query.cjs.map +1 -1
- package/build/modern/query.d.cts +1 -1
- package/build/modern/query.d.ts +1 -1
- package/build/modern/query.js +10 -2
- package/build/modern/query.js.map +1 -1
- package/build/modern/queryCache.d.cts +1 -1
- package/build/modern/queryCache.d.ts +1 -1
- package/build/modern/queryClient.cjs.map +1 -1
- package/build/modern/queryClient.d.cts +1 -1
- package/build/modern/queryClient.d.ts +1 -1
- package/build/modern/queryClient.js.map +1 -1
- package/build/modern/queryObserver.cjs +11 -9
- package/build/modern/queryObserver.cjs.map +1 -1
- package/build/modern/queryObserver.d.cts +1 -1
- package/build/modern/queryObserver.d.ts +1 -1
- package/build/modern/queryObserver.js +12 -9
- package/build/modern/queryObserver.js.map +1 -1
- package/build/modern/retryer.d.cts +1 -1
- package/build/modern/retryer.d.ts +1 -1
- package/build/modern/types.cjs.map +1 -1
- package/build/modern/types.d.cts +1 -1
- package/build/modern/types.d.ts +1 -1
- package/build/modern/utils.cjs +5 -0
- package/build/modern/utils.cjs.map +1 -1
- package/build/modern/utils.d.cts +1 -1
- package/build/modern/utils.d.ts +1 -1
- package/build/modern/utils.js +4 -0
- package/build/modern/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/hydration.test.tsx +85 -2
- package/src/__tests__/queryObserver.test.tsx +181 -0
- package/src/focusManager.ts +2 -2
- package/src/hydration.ts +41 -14
- package/src/onlineManager.ts +1 -1
- package/src/query.ts +10 -2
- package/src/queryClient.ts +3 -1
- package/src/queryObserver.ts +18 -9
- package/src/types.ts +12 -2
- package/src/utils.ts +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/focusManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (focused: boolean) => void\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable<Listener> {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line
|
|
1
|
+
{"version":3,"sources":["../../src/focusManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (focused: boolean) => void\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable<Listener> {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line ts/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n const changed = this.#focused !== focused\n if (changed) {\n this.#focused = focused\n this.onFocus()\n }\n }\n\n onFocus(): void {\n const isFocused = this.isFocused()\n this.listeners.forEach((listener) => {\n listener(isFocused)\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line ts/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6B;AAC7B,mBAAyB;AADzB;AASO,IAAM,eAAN,cAA2B,iCAAuB;AAAA,EAMvD,cAAc;AACZ,UAAM;AANR;AACA;AAEA;AAIE,uBAAK,QAAS,CAAC,YAAY;AAGzB,UAAI,CAAC,yBAAY,OAAO,kBAAkB;AACxC,cAAM,WAAW,MAAM,QAAQ;AAE/B,eAAO,iBAAiB,oBAAoB,UAAU,KAAK;AAE3D,eAAO,MAAM;AAEX,iBAAO,oBAAoB,oBAAoB,QAAQ;AAAA,QACzD;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAAA,EAEU,cAAoB;AAC5B,QAAI,CAAC,mBAAK,WAAU;AAClB,WAAK,iBAAiB,mBAAK,OAAM;AAAA,IACnC;AAAA,EACF;AAAA,EAEU,gBAAgB;AAxC5B;AAyCI,QAAI,CAAC,KAAK,aAAa,GAAG;AACxB,+BAAK,cAAL;AACA,yBAAK,UAAW;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,iBAAiB,OAAsB;AA/CzC;AAgDI,uBAAK,QAAS;AACd,6BAAK,cAAL;AACA,uBAAK,UAAW,MAAM,CAAC,YAAY;AACjC,UAAI,OAAO,YAAY,WAAW;AAChC,aAAK,WAAW,OAAO;AAAA,MACzB,OAAO;AACL,aAAK,QAAQ;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,SAAyB;AAClC,UAAM,UAAU,mBAAK,cAAa;AAClC,QAAI,SAAS;AACX,yBAAK,UAAW;AAChB,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEA,UAAgB;AACd,UAAM,YAAY,KAAK,UAAU;AACjC,SAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,eAAS,SAAS;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EAEA,YAAqB;AA1EvB;AA2EI,QAAI,OAAO,mBAAK,cAAa,WAAW;AACtC,aAAO,mBAAK;AAAA,IACd;AAIA,aAAO,gBAAW,aAAX,mBAAqB,qBAAoB;AAAA,EAClD;AACF;AAzEE;AACA;AAEA;AAwEK,IAAM,eAAe,IAAI,aAAa;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/focusManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (focused: boolean) => void\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable<Listener> {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line
|
|
1
|
+
{"version":3,"sources":["../../src/focusManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (focused: boolean) => void\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable<Listener> {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line ts/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n const changed = this.#focused !== focused\n if (changed) {\n this.#focused = focused\n this.onFocus()\n }\n }\n\n onFocus(): void {\n const isFocused = this.isFocused()\n this.listeners.forEach((listener) => {\n listener(isFocused)\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line ts/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n"],"mappings":";;;;;;;AAAA,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AADzB;AASO,IAAM,eAAN,cAA2B,aAAuB;AAAA,EAMvD,cAAc;AACZ,UAAM;AANR;AACA;AAEA;AAIE,uBAAK,QAAS,CAAC,YAAY;AAGzB,UAAI,CAAC,YAAY,OAAO,kBAAkB;AACxC,cAAM,WAAW,MAAM,QAAQ;AAE/B,eAAO,iBAAiB,oBAAoB,UAAU,KAAK;AAE3D,eAAO,MAAM;AAEX,iBAAO,oBAAoB,oBAAoB,QAAQ;AAAA,QACzD;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAAA,EAEU,cAAoB;AAC5B,QAAI,CAAC,mBAAK,WAAU;AAClB,WAAK,iBAAiB,mBAAK,OAAM;AAAA,IACnC;AAAA,EACF;AAAA,EAEU,gBAAgB;AAxC5B;AAyCI,QAAI,CAAC,KAAK,aAAa,GAAG;AACxB,+BAAK,cAAL;AACA,yBAAK,UAAW;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,iBAAiB,OAAsB;AA/CzC;AAgDI,uBAAK,QAAS;AACd,6BAAK,cAAL;AACA,uBAAK,UAAW,MAAM,CAAC,YAAY;AACjC,UAAI,OAAO,YAAY,WAAW;AAChC,aAAK,WAAW,OAAO;AAAA,MACzB,OAAO;AACL,aAAK,QAAQ;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,SAAyB;AAClC,UAAM,UAAU,mBAAK,cAAa;AAClC,QAAI,SAAS;AACX,yBAAK,UAAW;AAChB,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEA,UAAgB;AACd,UAAM,YAAY,KAAK,UAAU;AACjC,SAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,eAAS,SAAS;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EAEA,YAAqB;AA1EvB;AA2EI,QAAI,OAAO,mBAAK,cAAa,WAAW;AACtC,aAAO,mBAAK;AAAA,IACd;AAIA,aAAO,gBAAW,aAAX,mBAAqB,qBAAoB;AAAA,EAClD;AACF;AAzEE;AACA;AAEA;AAwEK,IAAM,eAAe,IAAI,aAAa;","names":[]}
|
|
@@ -205,6 +205,7 @@ declare function functionalUpdate<TInput, TOutput>(updater: Updater<TInput, TOut
|
|
|
205
205
|
declare function isValidTimeout(value: unknown): value is number;
|
|
206
206
|
declare function timeUntilStale(updatedAt: number, staleTime?: number): number;
|
|
207
207
|
declare function resolveStaleTime<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(staleTime: undefined | StaleTime<TQueryFnData, TError, TData, TQueryKey>, query: Query<TQueryFnData, TError, TData, TQueryKey>): number | undefined;
|
|
208
|
+
declare function resolveEnabled<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(enabled: undefined | Enabled<TQueryFnData, TError, TData, TQueryKey>, query: Query<TQueryFnData, TError, TData, TQueryKey>): boolean | undefined;
|
|
208
209
|
declare function matchQuery(filters: QueryFilters, query: Query<any, any, any, any>): boolean;
|
|
209
210
|
declare function matchMutation(filters: MutationFilters, mutation: Mutation<any, any>): boolean;
|
|
210
211
|
declare function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Pick<QueryOptions<any, any, any, any>, 'queryKeyHashFn'>): string;
|
|
@@ -516,6 +517,7 @@ type DataTag<TType, TValue> = TType & {
|
|
|
516
517
|
};
|
|
517
518
|
type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = (context: QueryFunctionContext<TQueryKey, TPageParam>) => T | Promise<T>;
|
|
518
519
|
type StaleTime<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = number | ((query: Query<TQueryFnData, TError, TData, TQueryKey>) => number);
|
|
520
|
+
type Enabled<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = boolean | ((query: Query<TQueryFnData, TError, TData, TQueryKey>) => boolean);
|
|
519
521
|
type QueryPersister<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? (queryFn: QueryFunction<T, TQueryKey, never>, context: QueryFunctionContext<TQueryKey>, query: Query) => T | Promise<T> : (queryFn: QueryFunction<T, TQueryKey, TPageParam>, context: QueryFunctionContext<TQueryKey>, query: Query) => T | Promise<T>;
|
|
520
522
|
type QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? {
|
|
521
523
|
queryKey: TQueryKey;
|
|
@@ -614,11 +616,12 @@ interface InfiniteQueryPageParamsOptions<TQueryFnData = unknown, TPageParam = un
|
|
|
614
616
|
type ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey extends QueryKey> = boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
|
|
615
617
|
interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends WithRequired<QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam>, 'queryKey'> {
|
|
616
618
|
/**
|
|
617
|
-
* Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
619
|
+
* Set this to `false` or a function that returns `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
618
620
|
* To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
|
621
|
+
* Accepts a boolean or function that returns a boolean.
|
|
619
622
|
* Defaults to `true`.
|
|
620
623
|
*/
|
|
621
|
-
enabled?:
|
|
624
|
+
enabled?: Enabled<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
622
625
|
/**
|
|
623
626
|
* The time in milliseconds after data is considered stale.
|
|
624
627
|
* If set to `Infinity`, the data will never be considered stale.
|
|
@@ -1198,13 +1201,15 @@ interface NotifyEvent {
|
|
|
1198
1201
|
type: NotifyEventType;
|
|
1199
1202
|
}
|
|
1200
1203
|
|
|
1204
|
+
type TransformerFn = (data: any) => any;
|
|
1201
1205
|
interface DehydrateOptions {
|
|
1206
|
+
serializeData?: TransformerFn;
|
|
1202
1207
|
shouldDehydrateMutation?: (mutation: Mutation) => boolean;
|
|
1203
1208
|
shouldDehydrateQuery?: (query: Query) => boolean;
|
|
1204
1209
|
}
|
|
1205
1210
|
interface HydrateOptions {
|
|
1206
1211
|
defaultOptions?: {
|
|
1207
|
-
|
|
1212
|
+
deserializeData?: TransformerFn;
|
|
1208
1213
|
queries?: QueryOptions;
|
|
1209
1214
|
mutations?: MutationOptions<unknown, DefaultError, unknown, unknown>;
|
|
1210
1215
|
};
|
|
@@ -1231,4 +1236,4 @@ declare function defaultShouldDehydrateQuery(query: Query): boolean;
|
|
|
1231
1236
|
declare function dehydrate(client: QueryClient, options?: DehydrateOptions): DehydratedState;
|
|
1232
1237
|
declare function hydrate(client: QueryClient, dehydratedState: unknown, options?: HydrateOptions): void;
|
|
1233
1238
|
|
|
1234
|
-
export { type
|
|
1239
|
+
export { type QueryOptions as $, dataTagSymbol as A, type DataTag as B, CancelledError as C, type DehydrateOptions as D, type QueryFunction as E, type StaleTime as F, type Enabled as G, type HydrateOptions as H, type QueryPersister as I, type QueryFunctionContext as J, type InitialDataFunction as K, type QueriesPlaceholderDataFunction as L, MutationCache as M, type NoInfer as N, type OmitKeyof as O, type PlaceholderDataFunction as P, QueryCache as Q, type Register as R, type SkipToken as S, type QueryKeyHashFunction as T, type Updater as U, type GetPreviousPageParamFunction as V, type GetNextPageParamFunction as W, type InfiniteData as X, type QueryMeta as Y, type NetworkMode as Z, type NotifyOnChangeProps as _, type QueryCacheNotifyEvent as a, type FetchDirection as a$, type InitialPageParam as a0, type InfiniteQueryPageParamsOptions as a1, type ThrowOnError as a2, type QueryObserverOptions as a3, type WithRequired as a4, type Optional as a5, type DefaultedQueryObserverOptions as a6, type InfiniteQueryObserverOptions as a7, type DefaultedInfiniteQueryObserverOptions as a8, type FetchQueryOptions as a9, type DefinedInfiniteQueryObserverResult as aA, type InfiniteQueryObserverResult as aB, type MutationKey as aC, type MutationStatus as aD, type MutationScope as aE, type MutationMeta as aF, type MutationFunction as aG, type MutationOptions as aH, type MutationObserverOptions as aI, type MutateOptions as aJ, type MutateFunction as aK, type MutationObserverBaseResult as aL, type MutationObserverIdleResult as aM, type MutationObserverLoadingResult as aN, type MutationObserverErrorResult as aO, type MutationObserverSuccessResult as aP, type MutationObserverResult as aQ, type QueryClientConfig as aR, type DefaultOptions as aS, type CancelOptions as aT, type SetDataOptions as aU, type NotifyEventType as aV, type NotifyEvent as aW, type QueryBehavior as aX, type ObserverFetchOptions as aY, type NotifyOptions as aZ, type FetchContext as a_, type EnsureQueryDataOptions as aa, type FetchInfiniteQueryOptions as ab, type ResultOptions as ac, type RefetchOptions as ad, type InvalidateQueryFilters as ae, type RefetchQueryFilters as af, type InvalidateOptions as ag, type ResetOptions as ah, type FetchNextPageOptions as ai, type FetchPreviousPageOptions as aj, type QueryStatus as ak, type FetchStatus as al, type QueryObserverBaseResult as am, type QueryObserverPendingResult as an, type QueryObserverLoadingResult as ao, type QueryObserverLoadingErrorResult as ap, type QueryObserverRefetchErrorResult as aq, type QueryObserverSuccessResult as ar, type DefinedQueryObserverResult as as, type QueryObserverResult as at, type InfiniteQueryObserverBaseResult as au, type InfiniteQueryObserverPendingResult as av, type InfiniteQueryObserverLoadingResult as aw, type InfiniteQueryObserverLoadingErrorResult as ax, type InfiniteQueryObserverRefetchErrorResult as ay, type InfiniteQueryObserverSuccessResult as az, QueryClient as b, type FetchMeta as b0, type FetchOptions as b1, type Action$1 as b2, type SetStateOptions as b3, fetchState as b4, type QueryTypeFilter as b5, noop as b6, functionalUpdate as b7, isValidTimeout as b8, timeUntilStale as b9, resolveStaleTime as ba, resolveEnabled as bb, hashQueryKeyByOptions as bc, partialMatchKey as bd, shallowEqualObjects as be, isPlainArray as bf, isPlainObject as bg, sleep as bh, replaceData as bi, addToEnd as bj, addToStart as bk, ensureQueryFn as bl, type QueryStore as bm, type Action as bn, getDefaultState as bo, type Retryer as bp, type RetryValue as bq, type RetryDelayValue as br, canFetch as bs, createRetryer as bt, 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, Mutation as v, type MutationState as w, type DehydratedState as x, type DefaultError as y, type QueryKey as z };
|
|
@@ -205,6 +205,7 @@ declare function functionalUpdate<TInput, TOutput>(updater: Updater<TInput, TOut
|
|
|
205
205
|
declare function isValidTimeout(value: unknown): value is number;
|
|
206
206
|
declare function timeUntilStale(updatedAt: number, staleTime?: number): number;
|
|
207
207
|
declare function resolveStaleTime<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(staleTime: undefined | StaleTime<TQueryFnData, TError, TData, TQueryKey>, query: Query<TQueryFnData, TError, TData, TQueryKey>): number | undefined;
|
|
208
|
+
declare function resolveEnabled<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(enabled: undefined | Enabled<TQueryFnData, TError, TData, TQueryKey>, query: Query<TQueryFnData, TError, TData, TQueryKey>): boolean | undefined;
|
|
208
209
|
declare function matchQuery(filters: QueryFilters, query: Query<any, any, any, any>): boolean;
|
|
209
210
|
declare function matchMutation(filters: MutationFilters, mutation: Mutation<any, any>): boolean;
|
|
210
211
|
declare function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Pick<QueryOptions<any, any, any, any>, 'queryKeyHashFn'>): string;
|
|
@@ -516,6 +517,7 @@ type DataTag<TType, TValue> = TType & {
|
|
|
516
517
|
};
|
|
517
518
|
type QueryFunction<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = (context: QueryFunctionContext<TQueryKey, TPageParam>) => T | Promise<T>;
|
|
518
519
|
type StaleTime<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = number | ((query: Query<TQueryFnData, TError, TData, TQueryKey>) => number);
|
|
520
|
+
type Enabled<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = boolean | ((query: Query<TQueryFnData, TError, TData, TQueryKey>) => boolean);
|
|
519
521
|
type QueryPersister<T = unknown, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? (queryFn: QueryFunction<T, TQueryKey, never>, context: QueryFunctionContext<TQueryKey>, query: Query) => T | Promise<T> : (queryFn: QueryFunction<T, TQueryKey, TPageParam>, context: QueryFunctionContext<TQueryKey>, query: Query) => T | Promise<T>;
|
|
520
522
|
type QueryFunctionContext<TQueryKey extends QueryKey = QueryKey, TPageParam = never> = [TPageParam] extends [never] ? {
|
|
521
523
|
queryKey: TQueryKey;
|
|
@@ -614,11 +616,12 @@ interface InfiniteQueryPageParamsOptions<TQueryFnData = unknown, TPageParam = un
|
|
|
614
616
|
type ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey extends QueryKey> = boolean | ((error: TError, query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => boolean);
|
|
615
617
|
interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends WithRequired<QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam>, 'queryKey'> {
|
|
616
618
|
/**
|
|
617
|
-
* Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
619
|
+
* Set this to `false` or a function that returns `false` to disable automatic refetching when the query mounts or changes query keys.
|
|
618
620
|
* To refetch the query, use the `refetch` method returned from the `useQuery` instance.
|
|
621
|
+
* Accepts a boolean or function that returns a boolean.
|
|
619
622
|
* Defaults to `true`.
|
|
620
623
|
*/
|
|
621
|
-
enabled?:
|
|
624
|
+
enabled?: Enabled<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
622
625
|
/**
|
|
623
626
|
* The time in milliseconds after data is considered stale.
|
|
624
627
|
* If set to `Infinity`, the data will never be considered stale.
|
|
@@ -1198,13 +1201,15 @@ interface NotifyEvent {
|
|
|
1198
1201
|
type: NotifyEventType;
|
|
1199
1202
|
}
|
|
1200
1203
|
|
|
1204
|
+
type TransformerFn = (data: any) => any;
|
|
1201
1205
|
interface DehydrateOptions {
|
|
1206
|
+
serializeData?: TransformerFn;
|
|
1202
1207
|
shouldDehydrateMutation?: (mutation: Mutation) => boolean;
|
|
1203
1208
|
shouldDehydrateQuery?: (query: Query) => boolean;
|
|
1204
1209
|
}
|
|
1205
1210
|
interface HydrateOptions {
|
|
1206
1211
|
defaultOptions?: {
|
|
1207
|
-
|
|
1212
|
+
deserializeData?: TransformerFn;
|
|
1208
1213
|
queries?: QueryOptions;
|
|
1209
1214
|
mutations?: MutationOptions<unknown, DefaultError, unknown, unknown>;
|
|
1210
1215
|
};
|
|
@@ -1231,4 +1236,4 @@ declare function defaultShouldDehydrateQuery(query: Query): boolean;
|
|
|
1231
1236
|
declare function dehydrate(client: QueryClient, options?: DehydrateOptions): DehydratedState;
|
|
1232
1237
|
declare function hydrate(client: QueryClient, dehydratedState: unknown, options?: HydrateOptions): void;
|
|
1233
1238
|
|
|
1234
|
-
export { type
|
|
1239
|
+
export { type QueryOptions as $, dataTagSymbol as A, type DataTag as B, CancelledError as C, type DehydrateOptions as D, type QueryFunction as E, type StaleTime as F, type Enabled as G, type HydrateOptions as H, type QueryPersister as I, type QueryFunctionContext as J, type InitialDataFunction as K, type QueriesPlaceholderDataFunction as L, MutationCache as M, type NoInfer as N, type OmitKeyof as O, type PlaceholderDataFunction as P, QueryCache as Q, type Register as R, type SkipToken as S, type QueryKeyHashFunction as T, type Updater as U, type GetPreviousPageParamFunction as V, type GetNextPageParamFunction as W, type InfiniteData as X, type QueryMeta as Y, type NetworkMode as Z, type NotifyOnChangeProps as _, type QueryCacheNotifyEvent as a, type FetchDirection as a$, type InitialPageParam as a0, type InfiniteQueryPageParamsOptions as a1, type ThrowOnError as a2, type QueryObserverOptions as a3, type WithRequired as a4, type Optional as a5, type DefaultedQueryObserverOptions as a6, type InfiniteQueryObserverOptions as a7, type DefaultedInfiniteQueryObserverOptions as a8, type FetchQueryOptions as a9, type DefinedInfiniteQueryObserverResult as aA, type InfiniteQueryObserverResult as aB, type MutationKey as aC, type MutationStatus as aD, type MutationScope as aE, type MutationMeta as aF, type MutationFunction as aG, type MutationOptions as aH, type MutationObserverOptions as aI, type MutateOptions as aJ, type MutateFunction as aK, type MutationObserverBaseResult as aL, type MutationObserverIdleResult as aM, type MutationObserverLoadingResult as aN, type MutationObserverErrorResult as aO, type MutationObserverSuccessResult as aP, type MutationObserverResult as aQ, type QueryClientConfig as aR, type DefaultOptions as aS, type CancelOptions as aT, type SetDataOptions as aU, type NotifyEventType as aV, type NotifyEvent as aW, type QueryBehavior as aX, type ObserverFetchOptions as aY, type NotifyOptions as aZ, type FetchContext as a_, type EnsureQueryDataOptions as aa, type FetchInfiniteQueryOptions as ab, type ResultOptions as ac, type RefetchOptions as ad, type InvalidateQueryFilters as ae, type RefetchQueryFilters as af, type InvalidateOptions as ag, type ResetOptions as ah, type FetchNextPageOptions as ai, type FetchPreviousPageOptions as aj, type QueryStatus as ak, type FetchStatus as al, type QueryObserverBaseResult as am, type QueryObserverPendingResult as an, type QueryObserverLoadingResult as ao, type QueryObserverLoadingErrorResult as ap, type QueryObserverRefetchErrorResult as aq, type QueryObserverSuccessResult as ar, type DefinedQueryObserverResult as as, type QueryObserverResult as at, type InfiniteQueryObserverBaseResult as au, type InfiniteQueryObserverPendingResult as av, type InfiniteQueryObserverLoadingResult as aw, type InfiniteQueryObserverLoadingErrorResult as ax, type InfiniteQueryObserverRefetchErrorResult as ay, type InfiniteQueryObserverSuccessResult as az, QueryClient as b, type FetchMeta as b0, type FetchOptions as b1, type Action$1 as b2, type SetStateOptions as b3, fetchState as b4, type QueryTypeFilter as b5, noop as b6, functionalUpdate as b7, isValidTimeout as b8, timeUntilStale as b9, resolveStaleTime as ba, resolveEnabled as bb, hashQueryKeyByOptions as bc, partialMatchKey as bd, shallowEqualObjects as be, isPlainArray as bf, isPlainObject as bg, sleep as bh, replaceData as bi, addToEnd as bj, addToStart as bk, ensureQueryFn as bl, type QueryStore as bm, type Action as bn, getDefaultState as bo, type Retryer as bp, type RetryValue as bq, type RetryDelayValue as br, canFetch as bs, createRetryer as bt, 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, Mutation as v, type MutationState as w, type DehydratedState as x, type DefaultError as y, type QueryKey as z };
|
|
@@ -26,6 +26,9 @@ __export(hydration_exports, {
|
|
|
26
26
|
hydrate: () => hydrate
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(hydration_exports);
|
|
29
|
+
function defaultTransformerFn(data) {
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
29
32
|
function dehydrateMutation(mutation) {
|
|
30
33
|
return {
|
|
31
34
|
mutationKey: mutation.options.mutationKey,
|
|
@@ -34,14 +37,19 @@ function dehydrateMutation(mutation) {
|
|
|
34
37
|
...mutation.meta && { meta: mutation.meta }
|
|
35
38
|
};
|
|
36
39
|
}
|
|
37
|
-
function dehydrateQuery(query) {
|
|
40
|
+
function dehydrateQuery(query, serializeData) {
|
|
38
41
|
var _a;
|
|
39
42
|
return {
|
|
40
|
-
state:
|
|
43
|
+
state: {
|
|
44
|
+
...query.state,
|
|
45
|
+
...query.state.data !== void 0 && {
|
|
46
|
+
data: serializeData(query.state.data)
|
|
47
|
+
}
|
|
48
|
+
},
|
|
41
49
|
queryKey: query.queryKey,
|
|
42
50
|
queryHash: query.queryHash,
|
|
43
51
|
...query.state.status === "pending" && {
|
|
44
|
-
promise: (_a = query.promise) == null ? void 0 : _a.catch((error) => {
|
|
52
|
+
promise: (_a = query.promise) == null ? void 0 : _a.then(serializeData).catch((error) => {
|
|
45
53
|
if (process.env.NODE_ENV !== "production") {
|
|
46
54
|
console.error(
|
|
47
55
|
`A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`
|
|
@@ -60,49 +68,58 @@ function defaultShouldDehydrateQuery(query) {
|
|
|
60
68
|
return query.state.status === "success";
|
|
61
69
|
}
|
|
62
70
|
function dehydrate(client, options = {}) {
|
|
63
|
-
var _a, _b;
|
|
71
|
+
var _a, _b, _c;
|
|
64
72
|
const filterMutation = options.shouldDehydrateMutation ?? ((_a = client.getDefaultOptions().dehydrate) == null ? void 0 : _a.shouldDehydrateMutation) ?? defaultShouldDehydrateMutation;
|
|
65
73
|
const mutations = client.getMutationCache().getAll().flatMap(
|
|
66
74
|
(mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []
|
|
67
75
|
);
|
|
68
76
|
const filterQuery = options.shouldDehydrateQuery ?? ((_b = client.getDefaultOptions().dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? defaultShouldDehydrateQuery;
|
|
69
|
-
const
|
|
77
|
+
const serializeData = options.serializeData ?? ((_c = client.getDefaultOptions().dehydrate) == null ? void 0 : _c.serializeData) ?? defaultTransformerFn;
|
|
78
|
+
const queries = client.getQueryCache().getAll().flatMap(
|
|
79
|
+
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []
|
|
80
|
+
);
|
|
70
81
|
return { mutations, queries };
|
|
71
82
|
}
|
|
72
83
|
function hydrate(client, dehydratedState, options) {
|
|
84
|
+
var _a, _b;
|
|
73
85
|
if (typeof dehydratedState !== "object" || dehydratedState === null) {
|
|
74
86
|
return;
|
|
75
87
|
}
|
|
76
88
|
const mutationCache = client.getMutationCache();
|
|
77
89
|
const queryCache = client.getQueryCache();
|
|
90
|
+
const deserializeData = ((_a = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _a.deserializeData) ?? ((_b = client.getDefaultOptions().hydrate) == null ? void 0 : _b.deserializeData) ?? defaultTransformerFn;
|
|
78
91
|
const mutations = dehydratedState.mutations || [];
|
|
79
92
|
const queries = dehydratedState.queries || [];
|
|
80
93
|
mutations.forEach(({ state, ...mutationOptions }) => {
|
|
81
|
-
var
|
|
94
|
+
var _a2, _b2;
|
|
82
95
|
mutationCache.build(
|
|
83
96
|
client,
|
|
84
97
|
{
|
|
85
|
-
...(
|
|
86
|
-
...(
|
|
98
|
+
...(_a2 = client.getDefaultOptions().hydrate) == null ? void 0 : _a2.mutations,
|
|
99
|
+
...(_b2 = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b2.mutations,
|
|
87
100
|
...mutationOptions
|
|
88
101
|
},
|
|
89
102
|
state
|
|
90
103
|
);
|
|
91
104
|
});
|
|
92
105
|
queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {
|
|
93
|
-
var
|
|
106
|
+
var _a2, _b2;
|
|
94
107
|
let query = queryCache.get(queryHash);
|
|
108
|
+
const data = state.data === void 0 ? state.data : deserializeData(state.data);
|
|
95
109
|
if (query) {
|
|
96
110
|
if (query.state.dataUpdatedAt < state.dataUpdatedAt) {
|
|
97
|
-
const { fetchStatus: _ignored, ...
|
|
98
|
-
query.setState(
|
|
111
|
+
const { fetchStatus: _ignored, ...serializedState } = state;
|
|
112
|
+
query.setState({
|
|
113
|
+
...serializedState,
|
|
114
|
+
data
|
|
115
|
+
});
|
|
99
116
|
}
|
|
100
117
|
} else {
|
|
101
118
|
query = queryCache.build(
|
|
102
119
|
client,
|
|
103
120
|
{
|
|
104
|
-
...(
|
|
105
|
-
...(
|
|
121
|
+
...(_a2 = client.getDefaultOptions().hydrate) == null ? void 0 : _a2.queries,
|
|
122
|
+
...(_b2 = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b2.queries,
|
|
106
123
|
queryKey,
|
|
107
124
|
queryHash,
|
|
108
125
|
meta
|
|
@@ -111,13 +128,13 @@ function hydrate(client, dehydratedState, options) {
|
|
|
111
128
|
// query being stuck in fetching state upon hydration
|
|
112
129
|
{
|
|
113
130
|
...state,
|
|
131
|
+
data,
|
|
114
132
|
fetchStatus: "idle"
|
|
115
133
|
}
|
|
116
134
|
);
|
|
117
135
|
}
|
|
118
136
|
if (promise) {
|
|
119
|
-
const
|
|
120
|
-
const initialPromise = (transformPromise == null ? void 0 : transformPromise(Promise.resolve(promise))) ?? promise;
|
|
137
|
+
const initialPromise = Promise.resolve(promise).then(deserializeData);
|
|
121
138
|
void query.fetch(void 0, { initialPromise });
|
|
122
139
|
}
|
|
123
140
|
});
|
|
@@ -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\n\nexport interface DehydrateOptions {\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n
|
|
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 ts/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line ts/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, n as dehydrate, o as hydrate } from './hydration-DfqGmvZi.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, n as dehydrate, o as hydrate } from './hydration-ByKLEQMr.js';
|
|
2
2
|
import './removable.js';
|
|
3
3
|
import './subscribable.js';
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import "./chunk-2HYBKCYP.js";
|
|
2
2
|
|
|
3
3
|
// src/hydration.ts
|
|
4
|
+
function defaultTransformerFn(data) {
|
|
5
|
+
return data;
|
|
6
|
+
}
|
|
4
7
|
function dehydrateMutation(mutation) {
|
|
5
8
|
return {
|
|
6
9
|
mutationKey: mutation.options.mutationKey,
|
|
@@ -9,14 +12,19 @@ function dehydrateMutation(mutation) {
|
|
|
9
12
|
...mutation.meta && { meta: mutation.meta }
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
|
-
function dehydrateQuery(query) {
|
|
15
|
+
function dehydrateQuery(query, serializeData) {
|
|
13
16
|
var _a;
|
|
14
17
|
return {
|
|
15
|
-
state:
|
|
18
|
+
state: {
|
|
19
|
+
...query.state,
|
|
20
|
+
...query.state.data !== void 0 && {
|
|
21
|
+
data: serializeData(query.state.data)
|
|
22
|
+
}
|
|
23
|
+
},
|
|
16
24
|
queryKey: query.queryKey,
|
|
17
25
|
queryHash: query.queryHash,
|
|
18
26
|
...query.state.status === "pending" && {
|
|
19
|
-
promise: (_a = query.promise) == null ? void 0 : _a.catch((error) => {
|
|
27
|
+
promise: (_a = query.promise) == null ? void 0 : _a.then(serializeData).catch((error) => {
|
|
20
28
|
if (process.env.NODE_ENV !== "production") {
|
|
21
29
|
console.error(
|
|
22
30
|
`A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`
|
|
@@ -35,49 +43,58 @@ function defaultShouldDehydrateQuery(query) {
|
|
|
35
43
|
return query.state.status === "success";
|
|
36
44
|
}
|
|
37
45
|
function dehydrate(client, options = {}) {
|
|
38
|
-
var _a, _b;
|
|
46
|
+
var _a, _b, _c;
|
|
39
47
|
const filterMutation = options.shouldDehydrateMutation ?? ((_a = client.getDefaultOptions().dehydrate) == null ? void 0 : _a.shouldDehydrateMutation) ?? defaultShouldDehydrateMutation;
|
|
40
48
|
const mutations = client.getMutationCache().getAll().flatMap(
|
|
41
49
|
(mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []
|
|
42
50
|
);
|
|
43
51
|
const filterQuery = options.shouldDehydrateQuery ?? ((_b = client.getDefaultOptions().dehydrate) == null ? void 0 : _b.shouldDehydrateQuery) ?? defaultShouldDehydrateQuery;
|
|
44
|
-
const
|
|
52
|
+
const serializeData = options.serializeData ?? ((_c = client.getDefaultOptions().dehydrate) == null ? void 0 : _c.serializeData) ?? defaultTransformerFn;
|
|
53
|
+
const queries = client.getQueryCache().getAll().flatMap(
|
|
54
|
+
(query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []
|
|
55
|
+
);
|
|
45
56
|
return { mutations, queries };
|
|
46
57
|
}
|
|
47
58
|
function hydrate(client, dehydratedState, options) {
|
|
59
|
+
var _a, _b;
|
|
48
60
|
if (typeof dehydratedState !== "object" || dehydratedState === null) {
|
|
49
61
|
return;
|
|
50
62
|
}
|
|
51
63
|
const mutationCache = client.getMutationCache();
|
|
52
64
|
const queryCache = client.getQueryCache();
|
|
65
|
+
const deserializeData = ((_a = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _a.deserializeData) ?? ((_b = client.getDefaultOptions().hydrate) == null ? void 0 : _b.deserializeData) ?? defaultTransformerFn;
|
|
53
66
|
const mutations = dehydratedState.mutations || [];
|
|
54
67
|
const queries = dehydratedState.queries || [];
|
|
55
68
|
mutations.forEach(({ state, ...mutationOptions }) => {
|
|
56
|
-
var
|
|
69
|
+
var _a2, _b2;
|
|
57
70
|
mutationCache.build(
|
|
58
71
|
client,
|
|
59
72
|
{
|
|
60
|
-
...(
|
|
61
|
-
...(
|
|
73
|
+
...(_a2 = client.getDefaultOptions().hydrate) == null ? void 0 : _a2.mutations,
|
|
74
|
+
...(_b2 = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b2.mutations,
|
|
62
75
|
...mutationOptions
|
|
63
76
|
},
|
|
64
77
|
state
|
|
65
78
|
);
|
|
66
79
|
});
|
|
67
80
|
queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {
|
|
68
|
-
var
|
|
81
|
+
var _a2, _b2;
|
|
69
82
|
let query = queryCache.get(queryHash);
|
|
83
|
+
const data = state.data === void 0 ? state.data : deserializeData(state.data);
|
|
70
84
|
if (query) {
|
|
71
85
|
if (query.state.dataUpdatedAt < state.dataUpdatedAt) {
|
|
72
|
-
const { fetchStatus: _ignored, ...
|
|
73
|
-
query.setState(
|
|
86
|
+
const { fetchStatus: _ignored, ...serializedState } = state;
|
|
87
|
+
query.setState({
|
|
88
|
+
...serializedState,
|
|
89
|
+
data
|
|
90
|
+
});
|
|
74
91
|
}
|
|
75
92
|
} else {
|
|
76
93
|
query = queryCache.build(
|
|
77
94
|
client,
|
|
78
95
|
{
|
|
79
|
-
...(
|
|
80
|
-
...(
|
|
96
|
+
...(_a2 = client.getDefaultOptions().hydrate) == null ? void 0 : _a2.queries,
|
|
97
|
+
...(_b2 = options == null ? void 0 : options.defaultOptions) == null ? void 0 : _b2.queries,
|
|
81
98
|
queryKey,
|
|
82
99
|
queryHash,
|
|
83
100
|
meta
|
|
@@ -86,13 +103,13 @@ function hydrate(client, dehydratedState, options) {
|
|
|
86
103
|
// query being stuck in fetching state upon hydration
|
|
87
104
|
{
|
|
88
105
|
...state,
|
|
106
|
+
data,
|
|
89
107
|
fetchStatus: "idle"
|
|
90
108
|
}
|
|
91
109
|
);
|
|
92
110
|
}
|
|
93
111
|
if (promise) {
|
|
94
|
-
const
|
|
95
|
-
const initialPromise = (transformPromise == null ? void 0 : transformPromise(Promise.resolve(promise))) ?? promise;
|
|
112
|
+
const initialPromise = Promise.resolve(promise).then(deserializeData);
|
|
96
113
|
void query.fetch(void 0, { initialPromise });
|
|
97
114
|
}
|
|
98
115
|
});
|
|
@@ -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\n\nexport interface DehydrateOptions {\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n
|
|
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 ts/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line ts/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 {
|
|
1
|
+
export { aT as CancelOptions, C as CancelledError, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, H as HydrateOptions, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, v as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, e as MutationObserver, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, w as MutationState, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aR as QueryClientConfig, j as QueryFilters, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, c as QueryObserver, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, t as QueryState, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, S as SkipToken, F as StaleTime, a2 as ThrowOnError, U as Updater, a4 as WithRequired, A as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './hydration-DfqGmvZi.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 {
|
|
1
|
+
export { aT as CancelOptions, C as CancelledError, B as DataTag, y as DefaultError, aS as DefaultOptions, a8 as DefaultedInfiniteQueryObserverOptions, a6 as DefaultedQueryObserverOptions, aA as DefinedInfiniteQueryObserverResult, as as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, G as Enabled, aa as EnsureQueryDataOptions, ab as FetchInfiniteQueryOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, a9 as FetchQueryOptions, al as FetchStatus, W as GetNextPageParamFunction, V as GetPreviousPageParamFunction, H as HydrateOptions, X as InfiniteData, au as InfiniteQueryObserverBaseResult, ax as InfiniteQueryObserverLoadingErrorResult, aw as InfiniteQueryObserverLoadingResult, a7 as InfiniteQueryObserverOptions, av as InfiniteQueryObserverPendingResult, ay as InfiniteQueryObserverRefetchErrorResult, aB as InfiniteQueryObserverResult, az as InfiniteQueryObserverSuccessResult, a1 as InfiniteQueryPageParamsOptions, K as InitialDataFunction, a0 as InitialPageParam, ag as InvalidateOptions, ae as InvalidateQueryFilters, aK as MutateFunction, aJ as MutateOptions, v as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aG as MutationFunction, aC as MutationKey, aF as MutationMeta, e as MutationObserver, aL as MutationObserverBaseResult, aO as MutationObserverErrorResult, aM as MutationObserverIdleResult, aN as MutationObserverLoadingResult, aI as MutationObserverOptions, aQ as MutationObserverResult, aP as MutationObserverSuccessResult, aH as MutationOptions, aE as MutationScope, w as MutationState, aD as MutationStatus, Z as NetworkMode, N as NoInfer, aW as NotifyEvent, aV as NotifyEventType, _ as NotifyOnChangeProps, O as OmitKeyof, a5 as Optional, P as PlaceholderDataFunction, L as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aR as QueryClientConfig, j as QueryFilters, E as QueryFunction, J as QueryFunctionContext, z as QueryKey, T as QueryKeyHashFunction, Y as QueryMeta, c as QueryObserver, am as QueryObserverBaseResult, ap as QueryObserverLoadingErrorResult, ao as QueryObserverLoadingResult, a3 as QueryObserverOptions, an as QueryObserverPendingResult, aq as QueryObserverRefetchErrorResult, at as QueryObserverResult, ar as QueryObserverSuccessResult, $ as QueryOptions, I as QueryPersister, t as QueryState, ak as QueryStatus, ad as RefetchOptions, af as RefetchQueryFilters, R as Register, ah as ResetOptions, ac as ResultOptions, aU as SetDataOptions, S as SkipToken, F as StaleTime, a2 as ThrowOnError, U as Updater, a4 as WithRequired, A as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken } from './hydration-ByKLEQMr.js';
|
|
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 {
|
|
1
|
+
import { aX as QueryBehavior, X as InfiniteData, a1 as InfiniteQueryPageParamsOptions } from './hydration-DfqGmvZi.cjs';
|
|
2
2
|
import './removable.cjs';
|
|
3
3
|
import './subscribable.cjs';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { aX as QueryBehavior, X as InfiniteData, a1 as InfiniteQueryPageParamsOptions } from './hydration-ByKLEQMr.js';
|
|
2
2
|
import './removable.js';
|
|
3
3
|
import './subscribable.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { y as DefaultError,
|
|
1
|
+
import { y as DefaultError, X as InfiniteData, z as QueryKey, c as QueryObserver, aB as InfiniteQueryObserverResult, aY as ObserverFetchOptions, b as QueryClient, a7 as InfiniteQueryObserverOptions, aZ as NotifyOptions, a8 as DefaultedInfiniteQueryObserverOptions, ai as FetchNextPageOptions, aj as FetchPreviousPageOptions, u as Query } from './hydration-DfqGmvZi.cjs';
|
|
2
2
|
import './removable.cjs';
|
|
3
3
|
import './subscribable.cjs';
|
|
4
4
|
|