@tanstack/react-query-persist-client 5.104.1 → 5.104.2
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/PersistQueryClientProvider.cjs +10 -0
- package/build/legacy/PersistQueryClientProvider.cjs.map +1 -1
- package/build/legacy/PersistQueryClientProvider.d.cts +14 -0
- package/build/legacy/PersistQueryClientProvider.d.cts.map +1 -1
- package/build/legacy/PersistQueryClientProvider.d.ts +14 -0
- package/build/legacy/PersistQueryClientProvider.d.ts.map +1 -1
- package/build/legacy/PersistQueryClientProvider.js +10 -0
- package/build/legacy/PersistQueryClientProvider.js.map +1 -1
- package/build/modern/PersistQueryClientProvider.cjs +10 -0
- package/build/modern/PersistQueryClientProvider.cjs.map +1 -1
- package/build/modern/PersistQueryClientProvider.d.cts +14 -0
- package/build/modern/PersistQueryClientProvider.d.cts.map +1 -1
- package/build/modern/PersistQueryClientProvider.d.ts +14 -0
- package/build/modern/PersistQueryClientProvider.d.ts.map +1 -1
- package/build/modern/PersistQueryClientProvider.js +10 -0
- package/build/modern/PersistQueryClientProvider.js.map +1 -1
- package/package.json +7 -7
- package/src/PersistQueryClientProvider.tsx +14 -0
|
@@ -28,6 +28,16 @@ let _tanstack_query_persist_client_core = require("@tanstack/query-persist-clien
|
|
|
28
28
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
29
29
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
30
30
|
//#region src/PersistQueryClientProvider.tsx
|
|
31
|
+
/**
|
|
32
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
33
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
34
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
35
|
+
* changes.
|
|
36
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
37
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
38
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
39
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
40
|
+
*/
|
|
31
41
|
const PersistQueryClientProvider = ({ children, persistOptions, onSuccess, onError, ...props }) => {
|
|
32
42
|
const [isRestoring, setIsRestoring] = react.useState(true);
|
|
33
43
|
const optionsRef = react.useRef({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.cjs","names":["React","persistQueryClientSubscribe","QueryClientProvider","IsRestoringProvider"],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.cjs","names":["React","persistQueryClientSubscribe","QueryClientProvider","IsRestoringProvider"],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\n/**\n * The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the\n * `persistOptions` and callbacks for when restoring succeeds or fails.\n */\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\n/**\n * Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:\n * while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish\n * before subscribing. Once restored, the client is saved with the persister whenever the cache\n * changes.\n * @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and\n * `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored\n * (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.\n * @returns The `QueryClientProvider` wrapping the children.\n */\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,8BAA8B,EACzC,UACA,gBACA,WACA,SACA,GAAG,YACqD;CACxD,MAAM,CAAC,aAAa,kBAAkBA,MAAM,SAAS,IAAI;CACzD,MAAM,aAAaA,MAAM,OAAO;EAAE;EAAgB;EAAW;CAAQ,CAAC;CACtE,MAAM,gBAAgBA,MAAM,OAAO,KAAK;CAExC,MAAM,gBAAgB;EACpB,WAAW,UAAU;GAAE;GAAgB;GAAW;EAAQ;CAC5D,CAAC;CAED,MAAM,gBAAgB;EACpB,MAAM,UAAU;GACd,GAAG,WAAW,QAAQ;GACtB,aAAa,MAAM;EACrB;EACA,IAAI,CAAC,cAAc,SAAS;GAC1B,cAAc,UAAU;GACxB,CAAA,GAAA,oCAAA,0BAAA,CAA0B,OAAO,CAAC,CAC/B,WAAW;;IAAW,QAAA,yBAAA,sBAAA,WAAA,QAAA,CAAQ,eAAA,QAAA,0BAAA,KAAA,IAAA,KAAA,IAAA,sBAAA,KAAA,mBAAY;GAAC,CAAA,CAAC,CAC5C,YAAY;;IAAW,QAAA,0BAAA,uBAAA,WAAA,QAAA,CAAQ,aAAA,QAAA,2BAAA,KAAA,IAAA,KAAA,IAAA,uBAAA,KAAA,oBAAU;GAAC,CAAA,CAAC,CAC3C,cAAc;IACb,eAAe,KAAK;GACtB,CAAC;EACL;EACA,OAAO,cAAc,KAAA,KAAA,GAAYC,oCAAAA,4BAAAA,CAA4B,OAAO;CACtE,GAAG,CAAC,MAAM,QAAQ,WAAW,CAAC;CAE9B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,qBAAD;EAAqB,GAAI;EACvB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,qBAAD;GAAqB,OAAO;GAAc;EAA8B,CAAA;CACrD,CAAA;AAEzB"}
|
|
@@ -2,11 +2,25 @@ import * as React from "react";
|
|
|
2
2
|
import { PersistQueryClientOptions } from "@tanstack/query-persist-client-core";
|
|
3
3
|
import { OmitKeyof, QueryClientProviderProps } from "@tanstack/react-query";
|
|
4
4
|
//#region src/PersistQueryClientProvider.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the
|
|
7
|
+
* `persistOptions` and callbacks for when restoring succeeds or fails.
|
|
8
|
+
*/
|
|
5
9
|
export type PersistQueryClientProviderProps = QueryClientProviderProps & {
|
|
6
10
|
persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>;
|
|
7
11
|
onSuccess?: () => Promise<unknown> | unknown;
|
|
8
12
|
onError?: () => Promise<unknown> | unknown;
|
|
9
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
16
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
17
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
18
|
+
* changes.
|
|
19
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
20
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
21
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
22
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
23
|
+
*/
|
|
10
24
|
export declare const PersistQueryClientProvider: ({ children, persistOptions, onSuccess, onError, ...props }: PersistQueryClientProviderProps) => React.JSX.Element;
|
|
11
25
|
//#endregion
|
|
12
26
|
//# sourceMappingURL=PersistQueryClientProvider.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.d.cts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.d.cts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":";;;;;;;;YAeY,kCAAkC;EAC5C,gBAAgB,UAAU;EAC1B,kBAAkB;EAClB,gBAAgB;;;;;;;;;;;;qBAaL,+BAA8B,UAAA,gBAAA,WAAA,YAAA,SAMxC,oCAAkC,MAAM,IAAI"}
|
|
@@ -2,11 +2,25 @@ import * as React from "react";
|
|
|
2
2
|
import { PersistQueryClientOptions } from "@tanstack/query-persist-client-core";
|
|
3
3
|
import { OmitKeyof, QueryClientProviderProps } from "@tanstack/react-query";
|
|
4
4
|
//#region src/PersistQueryClientProvider.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the
|
|
7
|
+
* `persistOptions` and callbacks for when restoring succeeds or fails.
|
|
8
|
+
*/
|
|
5
9
|
export type PersistQueryClientProviderProps = QueryClientProviderProps & {
|
|
6
10
|
persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>;
|
|
7
11
|
onSuccess?: () => Promise<unknown> | unknown;
|
|
8
12
|
onError?: () => Promise<unknown> | unknown;
|
|
9
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
16
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
17
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
18
|
+
* changes.
|
|
19
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
20
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
21
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
22
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
23
|
+
*/
|
|
10
24
|
export declare const PersistQueryClientProvider: ({ children, persistOptions, onSuccess, onError, ...props }: PersistQueryClientProviderProps) => React.JSX.Element;
|
|
11
25
|
//#endregion
|
|
12
26
|
//# sourceMappingURL=PersistQueryClientProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.d.ts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.d.ts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":";;;;;;;;YAeY,kCAAkC;EAC5C,gBAAgB,UAAU;EAC1B,kBAAkB;EAClB,gBAAgB;;;;;;;;;;;;qBAaL,+BAA8B,UAAA,gBAAA,WAAA,YAAA,SAMxC,oCAAkC,MAAM,IAAI"}
|
|
@@ -4,6 +4,16 @@ import { persistQueryClientRestore, persistQueryClientSubscribe } from "@tanstac
|
|
|
4
4
|
import { IsRestoringProvider, QueryClientProvider } from "@tanstack/react-query";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/PersistQueryClientProvider.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
9
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
10
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
11
|
+
* changes.
|
|
12
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
13
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
14
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
15
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
16
|
+
*/
|
|
7
17
|
const PersistQueryClientProvider = ({ children, persistOptions, onSuccess, onError, ...props }) => {
|
|
8
18
|
const [isRestoring, setIsRestoring] = React.useState(true);
|
|
9
19
|
const optionsRef = React.useRef({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.js","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.js","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\n/**\n * The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the\n * `persistOptions` and callbacks for when restoring succeeds or fails.\n */\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\n/**\n * Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:\n * while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish\n * before subscribing. Once restored, the client is saved with the persister whenever the cache\n * changes.\n * @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and\n * `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored\n * (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.\n * @returns The `QueryClientProvider` wrapping the children.\n */\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA+BA,MAAa,8BAA8B,EACzC,UACA,gBACA,WACA,SACA,GAAG,YACqD;CACxD,MAAM,CAAC,aAAa,kBAAkB,MAAM,SAAS,IAAI;CACzD,MAAM,aAAa,MAAM,OAAO;EAAE;EAAgB;EAAW;CAAQ,CAAC;CACtE,MAAM,gBAAgB,MAAM,OAAO,KAAK;CAExC,MAAM,gBAAgB;EACpB,WAAW,UAAU;GAAE;GAAgB;GAAW;EAAQ;CAC5D,CAAC;CAED,MAAM,gBAAgB;EACpB,MAAM,UAAU;GACd,GAAG,WAAW,QAAQ;GACtB,aAAa,MAAM;EACrB;EACA,IAAI,CAAC,cAAc,SAAS;GAC1B,cAAc,UAAU;GACxB,0BAA0B,OAAO,CAAC,CAC/B,WAAW;;IAAW,QAAA,yBAAA,sBAAA,WAAA,QAAA,CAAQ,eAAA,QAAA,0BAAA,KAAA,IAAA,KAAA,IAAA,sBAAA,KAAA,mBAAY;GAAC,CAAA,CAAC,CAC5C,YAAY;;IAAW,QAAA,0BAAA,uBAAA,WAAA,QAAA,CAAQ,aAAA,QAAA,2BAAA,KAAA,IAAA,KAAA,IAAA,uBAAA,KAAA,oBAAU;GAAC,CAAA,CAAC,CAC3C,cAAc;IACb,eAAe,KAAK;GACtB,CAAC;EACL;EACA,OAAO,cAAc,KAAA,IAAY,4BAA4B,OAAO;CACtE,GAAG,CAAC,MAAM,QAAQ,WAAW,CAAC;CAE9B,OACE,oBAAC,qBAAD;EAAqB,GAAI;EACvB,UAAA,oBAAC,qBAAD;GAAqB,OAAO;GAAc;EAA8B,CAAA;CACrD,CAAA;AAEzB"}
|
|
@@ -28,6 +28,16 @@ let _tanstack_query_persist_client_core = require("@tanstack/query-persist-clien
|
|
|
28
28
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
29
29
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
30
30
|
//#region src/PersistQueryClientProvider.tsx
|
|
31
|
+
/**
|
|
32
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
33
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
34
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
35
|
+
* changes.
|
|
36
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
37
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
38
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
39
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
40
|
+
*/
|
|
31
41
|
const PersistQueryClientProvider = ({ children, persistOptions, onSuccess, onError, ...props }) => {
|
|
32
42
|
const [isRestoring, setIsRestoring] = react.useState(true);
|
|
33
43
|
const optionsRef = react.useRef({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.cjs","names":["React","persistQueryClientSubscribe","QueryClientProvider","IsRestoringProvider"],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.cjs","names":["React","persistQueryClientSubscribe","QueryClientProvider","IsRestoringProvider"],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\n/**\n * The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the\n * `persistOptions` and callbacks for when restoring succeeds or fails.\n */\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\n/**\n * Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:\n * while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish\n * before subscribing. Once restored, the client is saved with the persister whenever the cache\n * changes.\n * @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and\n * `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored\n * (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.\n * @returns The `QueryClientProvider` wrapping the children.\n */\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,8BAA8B,EACzC,UACA,gBACA,WACA,SACA,GAAG,YACqD;CACxD,MAAM,CAAC,aAAa,kBAAkBA,MAAM,SAAS,IAAI;CACzD,MAAM,aAAaA,MAAM,OAAO;EAAE;EAAgB;EAAW;CAAQ,CAAC;CACtE,MAAM,gBAAgBA,MAAM,OAAO,KAAK;CAExC,MAAM,gBAAgB;EACpB,WAAW,UAAU;GAAE;GAAgB;GAAW;EAAQ;CAC5D,CAAC;CAED,MAAM,gBAAgB;EACpB,MAAM,UAAU;GACd,GAAG,WAAW,QAAQ;GACtB,aAAa,MAAM;EACrB;EACA,IAAI,CAAC,cAAc,SAAS;GAC1B,cAAc,UAAU;GACxB,CAAA,GAAA,oCAAA,0BAAA,CAA0B,OAAO,CAAC,CAC/B,WAAW,WAAW,QAAQ,YAAY,CAAC,CAAC,CAC5C,YAAY,WAAW,QAAQ,UAAU,CAAC,CAAC,CAC3C,cAAc;IACb,eAAe,KAAK;GACtB,CAAC;EACL;EACA,OAAO,cAAc,KAAA,KAAA,GAAYC,oCAAAA,4BAAAA,CAA4B,OAAO;CACtE,GAAG,CAAC,MAAM,QAAQ,WAAW,CAAC;CAE9B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,qBAAD;EAAqB,GAAI;EACvB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,qBAAD;GAAqB,OAAO;GAAc;EAA8B,CAAA;CACrD,CAAA;AAEzB"}
|
|
@@ -2,11 +2,25 @@ import * as React from "react";
|
|
|
2
2
|
import { PersistQueryClientOptions } from "@tanstack/query-persist-client-core";
|
|
3
3
|
import { OmitKeyof, QueryClientProviderProps } from "@tanstack/react-query";
|
|
4
4
|
//#region src/PersistQueryClientProvider.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the
|
|
7
|
+
* `persistOptions` and callbacks for when restoring succeeds or fails.
|
|
8
|
+
*/
|
|
5
9
|
export type PersistQueryClientProviderProps = QueryClientProviderProps & {
|
|
6
10
|
persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>;
|
|
7
11
|
onSuccess?: () => Promise<unknown> | unknown;
|
|
8
12
|
onError?: () => Promise<unknown> | unknown;
|
|
9
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
16
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
17
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
18
|
+
* changes.
|
|
19
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
20
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
21
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
22
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
23
|
+
*/
|
|
10
24
|
export declare const PersistQueryClientProvider: ({ children, persistOptions, onSuccess, onError, ...props }: PersistQueryClientProviderProps) => React.JSX.Element;
|
|
11
25
|
//#endregion
|
|
12
26
|
//# sourceMappingURL=PersistQueryClientProvider.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.d.cts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.d.cts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":";;;;;;;;YAeY,kCAAkC;EAC5C,gBAAgB,UAAU;EAC1B,kBAAkB;EAClB,gBAAgB;;;;;;;;;;;;qBAaL,+BAA8B,UAAA,gBAAA,WAAA,YAAA,SAMxC,oCAAkC,MAAM,IAAI"}
|
|
@@ -2,11 +2,25 @@ import * as React from "react";
|
|
|
2
2
|
import { PersistQueryClientOptions } from "@tanstack/query-persist-client-core";
|
|
3
3
|
import { OmitKeyof, QueryClientProviderProps } from "@tanstack/react-query";
|
|
4
4
|
//#region src/PersistQueryClientProvider.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the
|
|
7
|
+
* `persistOptions` and callbacks for when restoring succeeds or fails.
|
|
8
|
+
*/
|
|
5
9
|
export type PersistQueryClientProviderProps = QueryClientProviderProps & {
|
|
6
10
|
persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>;
|
|
7
11
|
onSuccess?: () => Promise<unknown> | unknown;
|
|
8
12
|
onError?: () => Promise<unknown> | unknown;
|
|
9
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
16
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
17
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
18
|
+
* changes.
|
|
19
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
20
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
21
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
22
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
23
|
+
*/
|
|
10
24
|
export declare const PersistQueryClientProvider: ({ children, persistOptions, onSuccess, onError, ...props }: PersistQueryClientProviderProps) => React.JSX.Element;
|
|
11
25
|
//#endregion
|
|
12
26
|
//# sourceMappingURL=PersistQueryClientProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.d.ts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.d.ts","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"mappings":";;;;;;;;YAeY,kCAAkC;EAC5C,gBAAgB,UAAU;EAC1B,kBAAkB;EAClB,gBAAgB;;;;;;;;;;;;qBAaL,+BAA8B,UAAA,gBAAA,WAAA,YAAA,SAMxC,oCAAkC,MAAM,IAAI"}
|
|
@@ -4,6 +4,16 @@ import { persistQueryClientRestore, persistQueryClientSubscribe } from "@tanstac
|
|
|
4
4
|
import { IsRestoringProvider, QueryClientProvider } from "@tanstack/react-query";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/PersistQueryClientProvider.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
9
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
10
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
11
|
+
* changes.
|
|
12
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
13
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
14
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
15
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
16
|
+
*/
|
|
7
17
|
const PersistQueryClientProvider = ({ children, persistOptions, onSuccess, onError, ...props }) => {
|
|
8
18
|
const [isRestoring, setIsRestoring] = React.useState(true);
|
|
9
19
|
const optionsRef = React.useRef({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistQueryClientProvider.js","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersistQueryClientProvider.js","names":[],"sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport {\n persistQueryClientRestore,\n persistQueryClientSubscribe,\n} from '@tanstack/query-persist-client-core'\nimport { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'\n\n/**\n * The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the\n * `persistOptions` and callbacks for when restoring succeeds or fails.\n */\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => Promise<unknown> | unknown\n onError?: () => Promise<unknown> | unknown\n}\n\n/**\n * Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:\n * while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish\n * before subscribing. Once restored, the client is saved with the persister whenever the cache\n * changes.\n * @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and\n * `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored\n * (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.\n * @returns The `QueryClientProvider` wrapping the children.\n */\nexport const PersistQueryClientProvider = ({\n children,\n persistOptions,\n onSuccess,\n onError,\n ...props\n}: PersistQueryClientProviderProps): React.JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const optionsRef = React.useRef({ persistOptions, onSuccess, onError })\n const didRestoreRef = React.useRef(false)\n\n React.useEffect(() => {\n optionsRef.current = { persistOptions, onSuccess, onError }\n })\n\n React.useEffect(() => {\n const options = {\n ...optionsRef.current.persistOptions,\n queryClient: props.client,\n }\n if (!didRestoreRef.current) {\n didRestoreRef.current = true\n persistQueryClientRestore(options)\n .then(() => optionsRef.current.onSuccess?.())\n .catch(() => optionsRef.current.onError?.())\n .finally(() => {\n setIsRestoring(false)\n })\n }\n return isRestoring ? undefined : persistQueryClientSubscribe(options)\n }, [props.client, isRestoring])\n\n return (\n <QueryClientProvider {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA+BA,MAAa,8BAA8B,EACzC,UACA,gBACA,WACA,SACA,GAAG,YACqD;CACxD,MAAM,CAAC,aAAa,kBAAkB,MAAM,SAAS,IAAI;CACzD,MAAM,aAAa,MAAM,OAAO;EAAE;EAAgB;EAAW;CAAQ,CAAC;CACtE,MAAM,gBAAgB,MAAM,OAAO,KAAK;CAExC,MAAM,gBAAgB;EACpB,WAAW,UAAU;GAAE;GAAgB;GAAW;EAAQ;CAC5D,CAAC;CAED,MAAM,gBAAgB;EACpB,MAAM,UAAU;GACd,GAAG,WAAW,QAAQ;GACtB,aAAa,MAAM;EACrB;EACA,IAAI,CAAC,cAAc,SAAS;GAC1B,cAAc,UAAU;GACxB,0BAA0B,OAAO,CAAC,CAC/B,WAAW,WAAW,QAAQ,YAAY,CAAC,CAAC,CAC5C,YAAY,WAAW,QAAQ,UAAU,CAAC,CAAC,CAC3C,cAAc;IACb,eAAe,KAAK;GACtB,CAAC;EACL;EACA,OAAO,cAAc,KAAA,IAAY,4BAA4B,OAAO;CACtE,GAAG,CAAC,MAAM,QAAQ,WAAW,CAAC;CAE9B,OACE,oBAAC,qBAAD;EAAqB,GAAI;EACvB,UAAA,oBAAC,qBAAD;GAAqB,OAAO;GAAc;EAA8B,CAAA;CACrD,CAAA;AAEzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-query-persist-client",
|
|
3
|
-
"version": "5.104.
|
|
3
|
+
"version": "5.104.2",
|
|
4
4
|
"description": "React bindings to work with persisters in TanStack/react-query",
|
|
5
5
|
"author": "tannerlinsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"!src/__tests__"
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@tanstack/query-persist-client-core": "5.104.
|
|
43
|
+
"@tanstack/query-persist-client-core": "5.104.2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@eslint-react/eslint-plugin": "^5.
|
|
46
|
+
"@eslint-react/eslint-plugin": "^5.23.3",
|
|
47
47
|
"@tanstack/query-test-utils": "0.0.0",
|
|
48
|
-
"@tanstack/react-query": "5.104.
|
|
48
|
+
"@tanstack/react-query": "5.104.2",
|
|
49
49
|
"@testing-library/react": "^16.1.0",
|
|
50
50
|
"@types/react": "^19.2.7",
|
|
51
51
|
"@vitejs/plugin-react": "^6.1.1",
|
|
@@ -54,20 +54,20 @@
|
|
|
54
54
|
"typescript": "6.0.3"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@tanstack/react-query": "^5.104.
|
|
57
|
+
"@tanstack/react-query": "^5.104.2",
|
|
58
58
|
"react": "^18 || ^19"
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
61
|
"clean": "premove ./build ./coverage ./dist-ts ./.cache/test-types",
|
|
62
62
|
"compile": "tsc --project tsconfig.json",
|
|
63
|
-
"test:
|
|
63
|
+
"test:oxlint": "oxlint ./src",
|
|
64
64
|
"test:types": "npm-run-all --serial test:types:*",
|
|
65
|
-
"test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --project tsconfig.legacy.json --outDir .cache/test-types/ts56 --tsBuildInfoFile .cache/test-types/ts56.tsbuildinfo",
|
|
66
65
|
"test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --project tsconfig.legacy.json --outDir .cache/test-types/ts57 --tsBuildInfoFile .cache/test-types/ts57.tsbuildinfo",
|
|
67
66
|
"test:types:ts58": "node ../../node_modules/typescript58/lib/tsc.js --project tsconfig.legacy.json --outDir .cache/test-types/ts58 --tsBuildInfoFile .cache/test-types/ts58.tsbuildinfo",
|
|
68
67
|
"test:types:ts59": "node ../../node_modules/typescript59/lib/tsc.js --project tsconfig.legacy.json --outDir .cache/test-types/ts59 --tsBuildInfoFile .cache/test-types/ts59.tsbuildinfo",
|
|
69
68
|
"test:types:tscurrent": "tsc --project tsconfig.json --outDir .cache/test-types/tscurrent --tsBuildInfoFile .cache/test-types/tscurrent.tsbuildinfo",
|
|
70
69
|
"test:types:ts70": "node ../../node_modules/typescript70/lib/tsc.js --project tsconfig.legacy.json --outDir .cache/test-types/ts70 --tsBuildInfoFile .cache/test-types/ts70.tsbuildinfo",
|
|
70
|
+
"test:types:ts71": "node ../../node_modules/typescript71/lib/tsc.js --project tsconfig.legacy.json --outDir .cache/test-types/ts71 --tsBuildInfoFile .cache/test-types/ts71.tsbuildinfo",
|
|
71
71
|
"test:lib": "vitest --retry=3",
|
|
72
72
|
"test:lib:dev": "pnpm run test:lib --watch",
|
|
73
73
|
"test:build": "publint --strict && attw --pack",
|
|
@@ -9,12 +9,26 @@ import { IsRestoringProvider, QueryClientProvider } from '@tanstack/react-query'
|
|
|
9
9
|
import type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'
|
|
10
10
|
import type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query'
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* The props of `PersistQueryClientProvider`: the props of `QueryClientProvider`, plus the
|
|
14
|
+
* `persistOptions` and callbacks for when restoring succeeds or fails.
|
|
15
|
+
*/
|
|
12
16
|
export type PersistQueryClientProviderProps = QueryClientProviderProps & {
|
|
13
17
|
persistOptions: OmitKeyof<PersistQueryClientOptions, 'queryClient'>
|
|
14
18
|
onSuccess?: () => Promise<unknown> | unknown
|
|
15
19
|
onError?: () => Promise<unknown> | unknown
|
|
16
20
|
}
|
|
17
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Provides the `QueryClient` like `QueryClientProvider`, and restores the persisted client first:
|
|
24
|
+
* while restoring, `useIsRestoring` returns `true` and queries wait for the restore to finish
|
|
25
|
+
* before subscribing. Once restored, the client is saved with the persister whenever the cache
|
|
26
|
+
* changes.
|
|
27
|
+
* @param props - The `QueryClientProvider` props, the `persistOptions`, and the `onSuccess` and
|
|
28
|
+
* `onError` callbacks. `onSuccess` is called once restoring finishes, even if nothing was restored
|
|
29
|
+
* (e.g. because the persisted client expired), and `onError` if restoring or `onSuccess` throws.
|
|
30
|
+
* @returns The `QueryClientProvider` wrapping the children.
|
|
31
|
+
*/
|
|
18
32
|
export const PersistQueryClientProvider = ({
|
|
19
33
|
children,
|
|
20
34
|
persistOptions,
|