@tanstack/react-query-persist-client 4.6.0 → 4.7.1

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.
Files changed (38) hide show
  1. package/build/lib/PersistQueryClientProvider.d.ts +1 -1
  2. package/build/lib/PersistQueryClientProvider.esm.js +1 -1
  3. package/build/lib/PersistQueryClientProvider.esm.js.map +1 -1
  4. package/build/lib/PersistQueryClientProvider.js +2 -2
  5. package/build/lib/PersistQueryClientProvider.js.map +1 -1
  6. package/build/lib/PersistQueryClientProvider.mjs +1 -1
  7. package/build/lib/PersistQueryClientProvider.mjs.map +1 -1
  8. package/build/lib/index.d.ts +1 -2
  9. package/build/lib/index.esm.js +1 -2
  10. package/build/lib/index.esm.js.map +1 -1
  11. package/build/lib/index.js +7 -7
  12. package/build/lib/index.mjs +1 -2
  13. package/build/lib/index.mjs.map +1 -1
  14. package/build/umd/index.development.js +124 -29
  15. package/build/umd/index.development.js.map +1 -1
  16. package/build/umd/index.production.js +1 -1
  17. package/build/umd/index.production.js.map +1 -1
  18. package/package.json +5 -3
  19. package/src/PersistQueryClientProvider.tsx +2 -2
  20. package/src/__tests__/PersistQueryClientProvider.test.tsx +6 -2
  21. package/src/__tests__/persist.test.tsx +5 -2
  22. package/src/index.ts +3 -2
  23. package/build/lib/persist.d.ts +0 -58
  24. package/build/lib/persist.esm.js +0 -102
  25. package/build/lib/persist.esm.js.map +0 -1
  26. package/build/lib/persist.js +0 -109
  27. package/build/lib/persist.js.map +0 -1
  28. package/build/lib/persist.mjs +0 -102
  29. package/build/lib/persist.mjs.map +0 -1
  30. package/build/lib/retryStrategies.d.ts +0 -7
  31. package/build/lib/retryStrategies.esm.js +0 -25
  32. package/build/lib/retryStrategies.esm.js.map +0 -1
  33. package/build/lib/retryStrategies.js +0 -29
  34. package/build/lib/retryStrategies.js.map +0 -1
  35. package/build/lib/retryStrategies.mjs +0 -25
  36. package/build/lib/retryStrategies.mjs.map +0 -1
  37. package/src/persist.ts +0 -164
  38. package/src/retryStrategies.ts +0 -30
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import type { PersistQueryClientOptions } from './persist';
2
+ import type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core';
3
3
  import type { QueryClientProviderProps } from '@tanstack/react-query';
4
4
  export declare type PersistQueryClientProviderProps = QueryClientProviderProps & {
5
5
  persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>;
@@ -1,6 +1,6 @@
1
1
  import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.esm.js';
2
2
  import * as React from 'react';
3
- import { persistQueryClient } from './persist.esm.js';
3
+ import { persistQueryClient } from '@tanstack/query-persist-client-core';
4
4
  import { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query';
5
5
 
6
6
  const PersistQueryClientProvider = ({
@@ -1 +1 @@
1
- {"version":3,"file":"PersistQueryClientProvider.esm.js","sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from './persist'\nimport { persistQueryClient } from './persist'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then"],"mappings":";;;;;AAYO,MAAMA,0BAA0B,GAAG,CAAC;EACzCC,MADyC;EAEzCC,QAFyC;EAGzCC,cAHyC;EAIzCC,SAJyC;EAKzC,GAAGC,KAAAA;AALsC,CAAD,KAMU;EAClD,MAAM,CAACC,WAAD,EAAcC,cAAd,CAAA,GAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC,CAAA;AACA,EAAA,MAAMC,IAAI,GAAGF,KAAK,CAACG,MAAN,CAAa;IAAER,cAAF;AAAkBC,IAAAA,SAAAA;AAAlB,GAAb,CAAb,CAAA;EAEAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpBF,IAAI,CAACG,OAAL,GAAe;MAAEV,cAAF;AAAkBC,MAAAA,SAAAA;KAAjC,CAAA;GADF,CAAA,CAAA;EAIAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,IAAIE,OAAO,GAAG,KAAd,CAAA;IACAP,cAAc,CAAC,IAAD,CAAd,CAAA;AACA,IAAA,MAAM,CAACQ,WAAD,EAAcC,OAAd,CAAyBC,GAAAA,kBAAkB,CAAC,EAChD,GAAGP,IAAI,CAACG,OAAL,CAAaV,cADgC;AAEhDe,MAAAA,WAAW,EAAEjB,MAAAA;AAFmC,KAAD,CAAjD,CAAA;IAKAe,OAAO,CAACG,IAAR,CAAa,MAAM;MACjB,IAAI,CAACL,OAAL,EAAc;QACZJ,IAAI,CAACG,OAAL,CAAaT,SAAb,oBAAAM,IAAI,CAACG,OAAL,CAAaT,SAAb,EAAA,CAAA;QACAG,cAAc,CAAC,KAAD,CAAd,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAOA,IAAA,OAAO,MAAM;AACXO,MAAAA,OAAO,GAAG,IAAV,CAAA;MACAC,WAAW,EAAA,CAAA;KAFb,CAAA;GAfF,EAmBG,CAACd,MAAD,CAnBH,CAAA,CAAA;AAqBA,EAAA,oBACE,oBAAC,mBAAD,EAAA,QAAA,CAAA;AAAqB,IAAA,MAAM,EAAEA,MAAAA;GAAYI,EAAAA,KAAzC,CACE,eAAA,KAAA,CAAA,aAAA,CAAC,mBAAD,EAAA;AAAqB,IAAA,KAAK,EAAEC,WAAAA;GAAcJ,EAAAA,QAA1C,CADF,CADF,CAAA;AAKD;;;;"}
1
+ {"version":3,"file":"PersistQueryClientProvider.esm.js","sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport { persistQueryClient } from '@tanstack/query-persist-client-core'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then"],"mappings":";;;;;AAYO,MAAMA,0BAA0B,GAAG,CAAC;EACzCC,MADyC;EAEzCC,QAFyC;EAGzCC,cAHyC;EAIzCC,SAJyC;EAKzC,GAAGC,KAAAA;AALsC,CAAD,KAMU;EAClD,MAAM,CAACC,WAAD,EAAcC,cAAd,CAAA,GAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC,CAAA;AACA,EAAA,MAAMC,IAAI,GAAGF,KAAK,CAACG,MAAN,CAAa;IAAER,cAAF;AAAkBC,IAAAA,SAAAA;AAAlB,GAAb,CAAb,CAAA;EAEAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpBF,IAAI,CAACG,OAAL,GAAe;MAAEV,cAAF;AAAkBC,MAAAA,SAAAA;KAAjC,CAAA;GADF,CAAA,CAAA;EAIAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,IAAIE,OAAO,GAAG,KAAd,CAAA;IACAP,cAAc,CAAC,IAAD,CAAd,CAAA;AACA,IAAA,MAAM,CAACQ,WAAD,EAAcC,OAAd,CAAyBC,GAAAA,kBAAkB,CAAC,EAChD,GAAGP,IAAI,CAACG,OAAL,CAAaV,cADgC;AAEhDe,MAAAA,WAAW,EAAEjB,MAAAA;AAFmC,KAAD,CAAjD,CAAA;IAKAe,OAAO,CAACG,IAAR,CAAa,MAAM;MACjB,IAAI,CAACL,OAAL,EAAc;QACZJ,IAAI,CAACG,OAAL,CAAaT,SAAb,oBAAAM,IAAI,CAACG,OAAL,CAAaT,SAAb,EAAA,CAAA;QACAG,cAAc,CAAC,KAAD,CAAd,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAOA,IAAA,OAAO,MAAM;AACXO,MAAAA,OAAO,GAAG,IAAV,CAAA;MACAC,WAAW,EAAA,CAAA;KAFb,CAAA;GAfF,EAmBG,CAACd,MAAD,CAnBH,CAAA,CAAA;AAqBA,EAAA,oBACE,oBAAC,mBAAD,EAAA,QAAA,CAAA;AAAqB,IAAA,MAAM,EAAEA,MAAAA;GAAYI,EAAAA,KAAzC,CACE,eAAA,KAAA,CAAA,aAAA,CAAC,mBAAD,EAAA;AAAqB,IAAA,KAAK,EAAEC,WAAAA;GAAcJ,EAAAA,QAA1C,CADF,CADF,CAAA;AAKD;;;;"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
6
6
  var React = require('react');
7
- var persist = require('./persist.js');
7
+ var queryPersistClientCore = require('@tanstack/query-persist-client-core');
8
8
  var reactQuery = require('@tanstack/react-query');
9
9
 
10
10
  function _interopNamespace(e) {
@@ -48,7 +48,7 @@ const PersistQueryClientProvider = ({
48
48
  React__namespace.useEffect(() => {
49
49
  let isStale = false;
50
50
  setIsRestoring(true);
51
- const [unsubscribe, promise] = persist.persistQueryClient({ ...refs.current.persistOptions,
51
+ const [unsubscribe, promise] = queryPersistClientCore.persistQueryClient({ ...refs.current.persistOptions,
52
52
  queryClient: client
53
53
  });
54
54
  promise.then(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"PersistQueryClientProvider.js","sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from './persist'\nimport { persistQueryClient } from './persist'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then","QueryClientProvider","_extends","IsRestoringProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAMA,0BAA0B,GAAG,CAAC;EACzCC,MADyC;EAEzCC,QAFyC;EAGzCC,cAHyC;EAIzCC,SAJyC;EAKzC,GAAGC,KAAAA;AALsC,CAAD,KAMU;EAClD,MAAM,CAACC,WAAD,EAAcC,cAAd,CAAA,GAAgCC,gBAAK,CAACC,QAAN,CAAe,IAAf,CAAtC,CAAA;AACA,EAAA,MAAMC,IAAI,GAAGF,gBAAK,CAACG,MAAN,CAAa;IAAER,cAAF;AAAkBC,IAAAA,SAAAA;AAAlB,GAAb,CAAb,CAAA;EAEAI,gBAAK,CAACI,SAAN,CAAgB,MAAM;IACpBF,IAAI,CAACG,OAAL,GAAe;MAAEV,cAAF;AAAkBC,MAAAA,SAAAA;KAAjC,CAAA;GADF,CAAA,CAAA;EAIAI,gBAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,IAAIE,OAAO,GAAG,KAAd,CAAA;IACAP,cAAc,CAAC,IAAD,CAAd,CAAA;AACA,IAAA,MAAM,CAACQ,WAAD,EAAcC,OAAd,CAAyBC,GAAAA,0BAAkB,CAAC,EAChD,GAAGP,IAAI,CAACG,OAAL,CAAaV,cADgC;AAEhDe,MAAAA,WAAW,EAAEjB,MAAAA;AAFmC,KAAD,CAAjD,CAAA;IAKAe,OAAO,CAACG,IAAR,CAAa,MAAM;MACjB,IAAI,CAACL,OAAL,EAAc;QACZJ,IAAI,CAACG,OAAL,CAAaT,SAAb,oBAAAM,IAAI,CAACG,OAAL,CAAaT,SAAb,EAAA,CAAA;QACAG,cAAc,CAAC,KAAD,CAAd,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAOA,IAAA,OAAO,MAAM;AACXO,MAAAA,OAAO,GAAG,IAAV,CAAA;MACAC,WAAW,EAAA,CAAA;KAFb,CAAA;GAfF,EAmBG,CAACd,MAAD,CAnBH,CAAA,CAAA;AAqBA,EAAA,oBACEO,+BAACY,8BAAD,EAAAC,oCAAA,CAAA;AAAqB,IAAA,MAAM,EAAEpB,MAAAA;GAAYI,EAAAA,KAAzC,CACE,eAAAG,gBAAA,CAAA,aAAA,CAACc,8BAAD,EAAA;AAAqB,IAAA,KAAK,EAAEhB,WAAAA;GAAcJ,EAAAA,QAA1C,CADF,CADF,CAAA;AAKD;;;;"}
1
+ {"version":3,"file":"PersistQueryClientProvider.js","sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport { persistQueryClient } from '@tanstack/query-persist-client-core'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then","QueryClientProvider","_extends","IsRestoringProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAMA,0BAA0B,GAAG,CAAC;EACzCC,MADyC;EAEzCC,QAFyC;EAGzCC,cAHyC;EAIzCC,SAJyC;EAKzC,GAAGC,KAAAA;AALsC,CAAD,KAMU;EAClD,MAAM,CAACC,WAAD,EAAcC,cAAd,CAAA,GAAgCC,gBAAK,CAACC,QAAN,CAAe,IAAf,CAAtC,CAAA;AACA,EAAA,MAAMC,IAAI,GAAGF,gBAAK,CAACG,MAAN,CAAa;IAAER,cAAF;AAAkBC,IAAAA,SAAAA;AAAlB,GAAb,CAAb,CAAA;EAEAI,gBAAK,CAACI,SAAN,CAAgB,MAAM;IACpBF,IAAI,CAACG,OAAL,GAAe;MAAEV,cAAF;AAAkBC,MAAAA,SAAAA;KAAjC,CAAA;GADF,CAAA,CAAA;EAIAI,gBAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,IAAIE,OAAO,GAAG,KAAd,CAAA;IACAP,cAAc,CAAC,IAAD,CAAd,CAAA;AACA,IAAA,MAAM,CAACQ,WAAD,EAAcC,OAAd,CAAyBC,GAAAA,yCAAkB,CAAC,EAChD,GAAGP,IAAI,CAACG,OAAL,CAAaV,cADgC;AAEhDe,MAAAA,WAAW,EAAEjB,MAAAA;AAFmC,KAAD,CAAjD,CAAA;IAKAe,OAAO,CAACG,IAAR,CAAa,MAAM;MACjB,IAAI,CAACL,OAAL,EAAc;QACZJ,IAAI,CAACG,OAAL,CAAaT,SAAb,oBAAAM,IAAI,CAACG,OAAL,CAAaT,SAAb,EAAA,CAAA;QACAG,cAAc,CAAC,KAAD,CAAd,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAOA,IAAA,OAAO,MAAM;AACXO,MAAAA,OAAO,GAAG,IAAV,CAAA;MACAC,WAAW,EAAA,CAAA;KAFb,CAAA;GAfF,EAmBG,CAACd,MAAD,CAnBH,CAAA,CAAA;AAqBA,EAAA,oBACEO,+BAACY,8BAAD,EAAAC,oCAAA,CAAA;AAAqB,IAAA,MAAM,EAAEpB,MAAAA;GAAYI,EAAAA,KAAzC,CACE,eAAAG,gBAAA,CAAA,aAAA,CAACc,8BAAD,EAAA;AAAqB,IAAA,KAAK,EAAEhB,WAAAA;GAAcJ,EAAAA,QAA1C,CADF,CADF,CAAA;AAKD;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.mjs';
2
2
  import * as React from 'react';
3
- import { persistQueryClient } from './persist.mjs';
3
+ import { persistQueryClient } from '@tanstack/query-persist-client-core';
4
4
  import { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query';
5
5
 
6
6
  const PersistQueryClientProvider = ({
@@ -1 +1 @@
1
- {"version":3,"file":"PersistQueryClientProvider.mjs","sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from './persist'\nimport { persistQueryClient } from './persist'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then"],"mappings":";;;;;AAYO,MAAMA,0BAA0B,GAAG,CAAC;EACzCC,MADyC;EAEzCC,QAFyC;EAGzCC,cAHyC;EAIzCC,SAJyC;EAKzC,GAAGC,KAAAA;AALsC,CAAD,KAMU;EAClD,MAAM,CAACC,WAAD,EAAcC,cAAd,CAAA,GAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC,CAAA;AACA,EAAA,MAAMC,IAAI,GAAGF,KAAK,CAACG,MAAN,CAAa;IAAER,cAAF;AAAkBC,IAAAA,SAAAA;AAAlB,GAAb,CAAb,CAAA;EAEAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpBF,IAAI,CAACG,OAAL,GAAe;MAAEV,cAAF;AAAkBC,MAAAA,SAAAA;KAAjC,CAAA;GADF,CAAA,CAAA;EAIAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,IAAIE,OAAO,GAAG,KAAd,CAAA;IACAP,cAAc,CAAC,IAAD,CAAd,CAAA;AACA,IAAA,MAAM,CAACQ,WAAD,EAAcC,OAAd,CAAyBC,GAAAA,kBAAkB,CAAC,EAChD,GAAGP,IAAI,CAACG,OAAL,CAAaV,cADgC;AAEhDe,MAAAA,WAAW,EAAEjB,MAAAA;AAFmC,KAAD,CAAjD,CAAA;IAKAe,OAAO,CAACG,IAAR,CAAa,MAAM;MACjB,IAAI,CAACL,OAAL,EAAc;QACZJ,IAAI,CAACG,OAAL,CAAaT,SAAb,oBAAAM,IAAI,CAACG,OAAL,CAAaT,SAAb,EAAA,CAAA;QACAG,cAAc,CAAC,KAAD,CAAd,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAOA,IAAA,OAAO,MAAM;AACXO,MAAAA,OAAO,GAAG,IAAV,CAAA;MACAC,WAAW,EAAA,CAAA;KAFb,CAAA;GAfF,EAmBG,CAACd,MAAD,CAnBH,CAAA,CAAA;AAqBA,EAAA,oBACE,oBAAC,mBAAD,EAAA,QAAA,CAAA;AAAqB,IAAA,MAAM,EAAEA,MAAAA;GAAYI,EAAAA,KAAzC,CACE,eAAA,KAAA,CAAA,aAAA,CAAC,mBAAD,EAAA;AAAqB,IAAA,KAAK,EAAEC,WAAAA;GAAcJ,EAAAA,QAA1C,CADF,CADF,CAAA;AAKD;;;;"}
1
+ {"version":3,"file":"PersistQueryClientProvider.mjs","sources":["../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport { persistQueryClient } from '@tanstack/query-persist-client-core'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then"],"mappings":";;;;;AAYO,MAAMA,0BAA0B,GAAG,CAAC;EACzCC,MADyC;EAEzCC,QAFyC;EAGzCC,cAHyC;EAIzCC,SAJyC;EAKzC,GAAGC,KAAAA;AALsC,CAAD,KAMU;EAClD,MAAM,CAACC,WAAD,EAAcC,cAAd,CAAA,GAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC,CAAA;AACA,EAAA,MAAMC,IAAI,GAAGF,KAAK,CAACG,MAAN,CAAa;IAAER,cAAF;AAAkBC,IAAAA,SAAAA;AAAlB,GAAb,CAAb,CAAA;EAEAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpBF,IAAI,CAACG,OAAL,GAAe;MAAEV,cAAF;AAAkBC,MAAAA,SAAAA;KAAjC,CAAA;GADF,CAAA,CAAA;EAIAI,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpB,IAAIE,OAAO,GAAG,KAAd,CAAA;IACAP,cAAc,CAAC,IAAD,CAAd,CAAA;AACA,IAAA,MAAM,CAACQ,WAAD,EAAcC,OAAd,CAAyBC,GAAAA,kBAAkB,CAAC,EAChD,GAAGP,IAAI,CAACG,OAAL,CAAaV,cADgC;AAEhDe,MAAAA,WAAW,EAAEjB,MAAAA;AAFmC,KAAD,CAAjD,CAAA;IAKAe,OAAO,CAACG,IAAR,CAAa,MAAM;MACjB,IAAI,CAACL,OAAL,EAAc;QACZJ,IAAI,CAACG,OAAL,CAAaT,SAAb,oBAAAM,IAAI,CAACG,OAAL,CAAaT,SAAb,EAAA,CAAA;QACAG,cAAc,CAAC,KAAD,CAAd,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAOA,IAAA,OAAO,MAAM;AACXO,MAAAA,OAAO,GAAG,IAAV,CAAA;MACAC,WAAW,EAAA,CAAA;KAFb,CAAA;GAfF,EAmBG,CAACd,MAAD,CAnBH,CAAA,CAAA;AAqBA,EAAA,oBACE,oBAAC,mBAAD,EAAA,QAAA,CAAA;AAAqB,IAAA,MAAM,EAAEA,MAAAA;GAAYI,EAAAA,KAAzC,CACE,eAAA,KAAA,CAAA,aAAA,CAAC,mBAAD,EAAA;AAAqB,IAAA,KAAK,EAAEC,WAAAA;GAAcJ,EAAAA,QAA1C,CADF,CADF,CAAA;AAKD;;;;"}
@@ -1,3 +1,2 @@
1
- export * from './persist';
1
+ export * from '@tanstack/query-persist-client-core';
2
2
  export * from './PersistQueryClientProvider';
3
- export * from './retryStrategies';
@@ -1,4 +1,3 @@
1
- export { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe } from './persist.esm.js';
1
+ export * from '@tanstack/query-persist-client-core';
2
2
  export { PersistQueryClientProvider } from './PersistQueryClientProvider.esm.js';
3
- export { removeOldestQuery } from './retryStrategies.esm.js';
4
3
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var persist = require('./persist.js');
5
+ var queryPersistClientCore = require('@tanstack/query-persist-client-core');
6
6
  var PersistQueryClientProvider = require('./PersistQueryClientProvider.js');
7
- var retryStrategies = require('./retryStrategies.js');
8
7
 
9
8
 
10
9
 
11
- exports.persistQueryClient = persist.persistQueryClient;
12
- exports.persistQueryClientRestore = persist.persistQueryClientRestore;
13
- exports.persistQueryClientSave = persist.persistQueryClientSave;
14
- exports.persistQueryClientSubscribe = persist.persistQueryClientSubscribe;
15
10
  exports.PersistQueryClientProvider = PersistQueryClientProvider.PersistQueryClientProvider;
16
- exports.removeOldestQuery = retryStrategies.removeOldestQuery;
11
+ Object.keys(queryPersistClientCore).forEach(function (k) {
12
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
13
+ enumerable: true,
14
+ get: function () { return queryPersistClientCore[k]; }
15
+ });
16
+ });
17
17
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,3 @@
1
- export { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe } from './persist.mjs';
1
+ export * from '@tanstack/query-persist-client-core';
2
2
  export { PersistQueryClientProvider } from './PersistQueryClientProvider.mjs';
3
- export { removeOldestQuery } from './retryStrategies.mjs';
4
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tanstack/query-core'), require('react'), require('@tanstack/react-query')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@tanstack/query-core', 'react', '@tanstack/react-query'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactQueryPersistClient = {}, global.QueryCore, global.React, global.ReactQuery));
5
- })(this, (function (exports, queryCore, React, reactQuery) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('@tanstack/react-query')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'react', '@tanstack/react-query'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactQueryPersistClient = {}, global.React, global.ReactQuery));
5
+ })(this, (function (exports, React, reactQuery) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,6 +24,101 @@
24
24
 
25
25
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
26
 
27
+ // TYPES
28
+ // FUNCTIONS
29
+ function dehydrateMutation(mutation) {
30
+ return {
31
+ mutationKey: mutation.options.mutationKey,
32
+ state: mutation.state
33
+ };
34
+ } // Most config is not dehydrated but instead meant to configure again when
35
+ // consuming the de/rehydrated data, typically with useQuery on the client.
36
+ // Sometimes it might make sense to prefetch data on the server and include
37
+ // in the html-payload, but not consume it on the initial render.
38
+
39
+
40
+ function dehydrateQuery(query) {
41
+ return {
42
+ state: query.state,
43
+ queryKey: query.queryKey,
44
+ queryHash: query.queryHash
45
+ };
46
+ }
47
+
48
+ function defaultShouldDehydrateMutation(mutation) {
49
+ return mutation.state.isPaused;
50
+ }
51
+
52
+ function defaultShouldDehydrateQuery(query) {
53
+ return query.state.status === 'success';
54
+ }
55
+
56
+ function dehydrate(client, options = {}) {
57
+ const mutations = [];
58
+ const queries = [];
59
+
60
+ if (options.dehydrateMutations !== false) {
61
+ const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;
62
+ client.getMutationCache().getAll().forEach(mutation => {
63
+ if (shouldDehydrateMutation(mutation)) {
64
+ mutations.push(dehydrateMutation(mutation));
65
+ }
66
+ });
67
+ }
68
+
69
+ if (options.dehydrateQueries !== false) {
70
+ const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;
71
+ client.getQueryCache().getAll().forEach(query => {
72
+ if (shouldDehydrateQuery(query)) {
73
+ queries.push(dehydrateQuery(query));
74
+ }
75
+ });
76
+ }
77
+
78
+ return {
79
+ mutations,
80
+ queries
81
+ };
82
+ }
83
+ function hydrate(client, dehydratedState, options) {
84
+ if (typeof dehydratedState !== 'object' || dehydratedState === null) {
85
+ return;
86
+ }
87
+
88
+ const mutationCache = client.getMutationCache();
89
+ const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
90
+
91
+ const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
92
+
93
+ const queries = dehydratedState.queries || [];
94
+ mutations.forEach(dehydratedMutation => {
95
+ var _options$defaultOptio;
96
+
97
+ mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),
98
+ mutationKey: dehydratedMutation.mutationKey
99
+ }, dehydratedMutation.state);
100
+ });
101
+ queries.forEach(dehydratedQuery => {
102
+ var _options$defaultOptio2;
103
+
104
+ const query = queryCache.get(dehydratedQuery.queryHash); // Do not hydrate if an existing query exists with newer data
105
+
106
+ if (query) {
107
+ if (query.state.dataUpdatedAt < dehydratedQuery.state.dataUpdatedAt) {
108
+ query.setState(dehydratedQuery.state);
109
+ }
110
+
111
+ return;
112
+ } // Restore query
113
+
114
+
115
+ queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),
116
+ queryKey: dehydratedQuery.queryKey,
117
+ queryHash: dehydratedQuery.queryHash
118
+ }, dehydratedQuery.state);
119
+ });
120
+ }
121
+
27
122
  /**
28
123
  * Restores persisted data to the QueryCache
29
124
  * - data obtained from persister.restoreClient
@@ -48,7 +143,7 @@
48
143
  if (expired || busted) {
49
144
  persister.removeClient();
50
145
  } else {
51
- queryCore.hydrate(queryClient, persistedClient.clientState, hydrateOptions);
146
+ hydrate(queryClient, persistedClient.clientState, hydrateOptions);
52
147
  }
53
148
  } else {
54
149
  persister.removeClient();
@@ -78,7 +173,7 @@
78
173
  const persistClient = {
79
174
  buster,
80
175
  timestamp: Date.now(),
81
- clientState: queryCore.dehydrate(queryClient, dehydrateOptions)
176
+ clientState: dehydrate(queryClient, dehydrateOptions)
82
177
  };
83
178
  await persister.persistClient(persistClient);
84
179
  }
@@ -122,6 +217,29 @@
122
217
  return [unsubscribe, restorePromise];
123
218
  }
124
219
 
220
+ const removeOldestQuery = ({
221
+ persistedClient
222
+ }) => {
223
+ const mutations = [...persistedClient.clientState.mutations];
224
+ const queries = [...persistedClient.clientState.queries];
225
+ const client = { ...persistedClient,
226
+ clientState: {
227
+ mutations,
228
+ queries
229
+ }
230
+ }; // sort queries by dataUpdatedAt (oldest first)
231
+
232
+ const sortedQueries = [...queries].sort((a, b) => a.state.dataUpdatedAt - b.state.dataUpdatedAt); // clean oldest query
233
+
234
+ if (sortedQueries.length > 0) {
235
+ const oldestData = sortedQueries.shift();
236
+ client.clientState.queries = queries.filter(q => q !== oldestData);
237
+ return client;
238
+ }
239
+
240
+ return undefined;
241
+ };
242
+
125
243
  function _extends() {
126
244
  _extends = Object.assign ? Object.assign.bind() : function (target) {
127
245
  for (var i = 1; i < arguments.length; i++) {
@@ -181,29 +299,6 @@
181
299
  }, children));
182
300
  };
183
301
 
184
- const removeOldestQuery = ({
185
- persistedClient
186
- }) => {
187
- const mutations = [...persistedClient.clientState.mutations];
188
- const queries = [...persistedClient.clientState.queries];
189
- const client = { ...persistedClient,
190
- clientState: {
191
- mutations,
192
- queries
193
- }
194
- }; // sort queries by dataUpdatedAt (oldest first)
195
-
196
- const sortedQueries = [...queries].sort((a, b) => a.state.dataUpdatedAt - b.state.dataUpdatedAt); // clean oldest query
197
-
198
- if (sortedQueries.length > 0) {
199
- const oldestData = sortedQueries.shift();
200
- client.clientState.queries = queries.filter(q => q !== oldestData);
201
- return client;
202
- }
203
-
204
- return undefined;
205
- };
206
-
207
302
  exports.PersistQueryClientProvider = PersistQueryClientProvider;
208
303
  exports.persistQueryClient = persistQueryClient;
209
304
  exports.persistQueryClientRestore = persistQueryClientRestore;
@@ -1 +1 @@
1
- {"version":3,"file":"index.development.js","sources":["../../src/persist.ts","../../src/PersistQueryClientProvider.tsx","../../src/retryStrategies.ts"],"sourcesContent":["import type {\n QueryClient,\n DehydratedState,\n DehydrateOptions,\n HydrateOptions,\n} from '@tanstack/query-core'\nimport { dehydrate, hydrate } from '@tanstack/query-core'\n\nexport type Promisable<T> = T | PromiseLike<T>\n\nexport interface Persister {\n persistClient(persistClient: PersistedClient): Promisable<void>\n restoreClient(): Promisable<PersistedClient | undefined>\n removeClient(): Promisable<void>\n}\n\nexport interface PersistedClient {\n timestamp: number\n buster: string\n clientState: DehydratedState\n}\n\nexport interface PersistQueryClienRootOptions {\n /** The QueryClient to persist */\n queryClient: QueryClient\n /** The Persister interface for storing and restoring the cache\n * to/from a persisted location */\n persister: Persister\n /** A unique string that can be used to forcefully\n * invalidate existing caches if they do not share the same buster string */\n buster?: string\n}\n\nexport interface PersistedQueryClientRestoreOptions\n extends PersistQueryClienRootOptions {\n /** The max-allowed age of the cache in milliseconds.\n * If a persisted cache is found that is older than this\n * time, it will be discarded */\n maxAge?: number\n /** The options passed to the hydrate function */\n hydrateOptions?: HydrateOptions\n}\n\nexport interface PersistedQueryClientSaveOptions\n extends PersistQueryClienRootOptions {\n /** The options passed to the dehydrate function */\n dehydrateOptions?: DehydrateOptions\n}\n\nexport interface PersistQueryClientOptions\n extends PersistedQueryClientRestoreOptions,\n PersistedQueryClientSaveOptions,\n PersistQueryClienRootOptions {}\n\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\nexport async function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions,\n}: PersistedQueryClientRestoreOptions) {\n try {\n const persistedClient = await persister.restoreClient()\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge\n const busted = persistedClient.buster !== buster\n if (expired || busted) {\n persister.removeClient()\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions)\n }\n } else {\n persister.removeClient()\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err)\n queryClient\n .getLogger()\n .warn(\n 'Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.',\n )\n }\n persister.removeClient()\n }\n}\n\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\nexport async function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions,\n}: PersistedQueryClientSaveOptions) {\n const persistClient: PersistedClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions),\n }\n\n await persister.persistClient(persistClient)\n}\n\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\nexport function persistQueryClientSubscribe(\n props: PersistedQueryClientSaveOptions,\n) {\n const unsubscribeQueryCache = props.queryClient\n .getQueryCache()\n .subscribe(() => {\n persistQueryClientSave(props)\n })\n\n const unusbscribeMutationCache = props.queryClient\n .getMutationCache()\n .subscribe(() => {\n persistQueryClientSave(props)\n })\n\n return () => {\n unsubscribeQueryCache()\n unusbscribeMutationCache()\n }\n}\n\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\nexport function persistQueryClient(\n props: PersistQueryClientOptions,\n): [() => void, Promise<void>] {\n let hasUnsubscribed = false\n let persistQueryClientUnsubscribe: (() => void) | undefined\n const unsubscribe = () => {\n hasUnsubscribed = true\n persistQueryClientUnsubscribe?.()\n }\n\n // Attempt restore\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props)\n }\n })\n\n return [unsubscribe, restorePromise]\n}\n","import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from './persist'\nimport { persistQueryClient } from './persist'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n","import type { PersistedClient } from './persist'\n\nexport type PersistRetryer = (props: {\n persistedClient: PersistedClient\n error: Error\n errorCount: number\n}) => PersistedClient | undefined\n\nexport const removeOldestQuery: PersistRetryer = ({ persistedClient }) => {\n const mutations = [...persistedClient.clientState.mutations]\n const queries = [...persistedClient.clientState.queries]\n const client: PersistedClient = {\n ...persistedClient,\n clientState: { mutations, queries },\n }\n\n // sort queries by dataUpdatedAt (oldest first)\n const sortedQueries = [...queries].sort(\n (a, b) => a.state.dataUpdatedAt - b.state.dataUpdatedAt,\n )\n\n // clean oldest query\n if (sortedQueries.length > 0) {\n const oldestData = sortedQueries.shift()\n client.clientState.queries = queries.filter((q) => q !== oldestData)\n return client\n }\n\n return undefined\n}\n"],"names":["persistQueryClientRestore","queryClient","persister","maxAge","buster","hydrateOptions","persistedClient","restoreClient","timestamp","expired","Date","now","busted","removeClient","hydrate","clientState","err","getLogger","error","warn","persistQueryClientSave","dehydrateOptions","persistClient","dehydrate","persistQueryClientSubscribe","props","unsubscribeQueryCache","getQueryCache","subscribe","unusbscribeMutationCache","getMutationCache","persistQueryClient","hasUnsubscribed","persistQueryClientUnsubscribe","unsubscribe","restorePromise","then","PersistQueryClientProvider","client","children","persistOptions","onSuccess","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","promise","QueryClientProvider","IsRestoringProvider","removeOldestQuery","mutations","queries","sortedQueries","sort","a","b","state","dataUpdatedAt","length","oldestData","shift","filter","q","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"index.development.js","sources":["../../../query-core/build/lib/hydration.mjs","../../../query-persist-client-core/build/lib/persist.mjs","../../../query-persist-client-core/build/lib/retryStrategies.mjs","../../src/PersistQueryClientProvider.tsx"],"sourcesContent":["// TYPES\n// FUNCTIONS\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state\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.\n\n\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash\n };\n}\n\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\n\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === 'success';\n}\n\nfunction dehydrate(client, options = {}) {\n const mutations = [];\n const queries = [];\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;\n client.getMutationCache().getAll().forEach(mutation => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation));\n }\n });\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;\n client.getQueryCache().getAll().forEach(query => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query));\n }\n });\n }\n\n return {\n mutations,\n queries\n };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return;\n }\n\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const queries = dehydratedState.queries || [];\n mutations.forEach(dehydratedMutation => {\n var _options$defaultOptio;\n\n mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),\n mutationKey: dehydratedMutation.mutationKey\n }, dehydratedMutation.state);\n });\n queries.forEach(dehydratedQuery => {\n var _options$defaultOptio2;\n\n const query = queryCache.get(dehydratedQuery.queryHash); // Do not hydrate if an existing query exists with newer data\n\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQuery.state.dataUpdatedAt) {\n query.setState(dehydratedQuery.state);\n }\n\n return;\n } // Restore query\n\n\n queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash\n }, dehydratedQuery.state);\n });\n}\n\nexport { dehydrate, hydrate };\n//# sourceMappingURL=hydration.mjs.map\n","import { hydrate, dehydrate } from '@tanstack/query-core';\n\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n\n if (expired || busted) {\n persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err);\n queryClient.getLogger().warn('Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.');\n }\n\n persister.removeClient();\n }\n}\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\n\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\n\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe(() => {\n persistQueryClientSave(props);\n });\n const unusbscribeMutationCache = props.queryClient.getMutationCache().subscribe(() => {\n persistQueryClientSave(props);\n });\n return () => {\n unsubscribeQueryCache();\n unusbscribeMutationCache();\n };\n}\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\n\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe == null ? void 0 : persistQueryClientUnsubscribe();\n }; // Attempt restore\n\n\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\n\nexport { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe };\n//# sourceMappingURL=persist.mjs.map\n","const removeOldestQuery = ({\n persistedClient\n}) => {\n const mutations = [...persistedClient.clientState.mutations];\n const queries = [...persistedClient.clientState.queries];\n const client = { ...persistedClient,\n clientState: {\n mutations,\n queries\n }\n }; // sort queries by dataUpdatedAt (oldest first)\n\n const sortedQueries = [...queries].sort((a, b) => a.state.dataUpdatedAt - b.state.dataUpdatedAt); // clean oldest query\n\n if (sortedQueries.length > 0) {\n const oldestData = sortedQueries.shift();\n client.clientState.queries = queries.filter(q => q !== oldestData);\n return client;\n }\n\n return undefined;\n};\n\nexport { removeOldestQuery };\n//# sourceMappingURL=retryStrategies.mjs.map\n","import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport { persistQueryClient } from '@tanstack/query-persist-client-core'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["PersistQueryClientProvider","client","children","persistOptions","onSuccess","props","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","persistQueryClient","queryClient","then","QueryClientProvider","IsRestoringProvider"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@tanstack/query-core"),require("react"),require("@tanstack/react-query")):"function"==typeof define&&define.amd?define(["exports","@tanstack/query-core","react","@tanstack/react-query"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactQueryPersistClient={},e.QueryCore,e.React,e.ReactQuery)}(this,(function(e,t,r,n){"use strict";function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=s(r);async function u({queryClient:e,persister:r,maxAge:n=864e5,buster:s="",hydrateOptions:i}){try{const u=await r.restoreClient();if(u)if(u.timestamp){const c=Date.now()-u.timestamp>n,a=u.buster!==s;c||a?r.removeClient():t.hydrate(e,u.clientState,i)}else r.removeClient()}catch(e){r.removeClient()}}async function c({queryClient:e,persister:r,buster:n="",dehydrateOptions:s}){const i={buster:n,timestamp:Date.now(),clientState:t.dehydrate(e,s)};await r.persistClient(i)}function a(e){const t=e.queryClient.getQueryCache().subscribe((()=>{c(e)})),r=e.queryClient.getMutationCache().subscribe((()=>{c(e)}));return()=>{t(),r()}}function o(e){let t,r=!1;return[()=>{r=!0,null==t||t()},u(e).then((()=>{r||(t=a(e))}))]}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}e.PersistQueryClientProvider=({client:e,children:t,persistOptions:r,onSuccess:s,...u})=>{const[c,a]=i.useState(!0),f=i.useRef({persistOptions:r,onSuccess:s});return i.useEffect((()=>{f.current={persistOptions:r,onSuccess:s}})),i.useEffect((()=>{let t=!1;a(!0);const[r,n]=o({...f.current.persistOptions,queryClient:e});return n.then((()=>{t||(null==f.current.onSuccess||f.current.onSuccess(),a(!1))})),()=>{t=!0,r()}}),[e]),i.createElement(n.QueryClientProvider,l({client:e},u),i.createElement(n.IsRestoringProvider,{value:c},t))},e.persistQueryClient=o,e.persistQueryClientRestore=u,e.persistQueryClientSave=c,e.persistQueryClientSubscribe=a,e.removeOldestQuery=({persistedClient:e})=>{const t=[...e.clientState.mutations],r=[...e.clientState.queries],n={...e,clientState:{mutations:t,queries:r}},s=[...r].sort(((e,t)=>e.state.dataUpdatedAt-t.state.dataUpdatedAt));if(s.length>0){const e=s.shift();return n.clientState.queries=r.filter((t=>t!==e)),n}},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@tanstack/react-query")):"function"==typeof define&&define.amd?define(["exports","react","@tanstack/react-query"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactQueryPersistClient={},e.React,e.ReactQuery)}(this,(function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=n(t);function u(e){return e.state.isPaused}function i(e){return"success"===e.state.status}function a(e,t={}){const r=[],n=[];if(!1!==t.dehydrateMutations){const n=t.shouldDehydrateMutation||u;e.getMutationCache().getAll().forEach((e=>{n(e)&&r.push(function(e){return{mutationKey:e.options.mutationKey,state:e.state}}(e))}))}if(!1!==t.dehydrateQueries){const r=t.shouldDehydrateQuery||i;e.getQueryCache().getAll().forEach((e=>{r(e)&&n.push(function(e){return{state:e.state,queryKey:e.queryKey,queryHash:e.queryHash}}(e))}))}return{mutations:r,queries:n}}async function o({queryClient:e,persister:t,maxAge:r=864e5,buster:n="",hydrateOptions:s}){try{const u=await t.restoreClient();if(u)if(u.timestamp){const i=Date.now()-u.timestamp>r,a=u.buster!==n;i||a?t.removeClient():function(e,t,r){if("object"!=typeof t||null===t)return;const n=e.getMutationCache(),s=e.getQueryCache(),u=t.mutations||[],i=t.queries||[];u.forEach((t=>{var s;n.build(e,{...null==r||null==(s=r.defaultOptions)?void 0:s.mutations,mutationKey:t.mutationKey},t.state)})),i.forEach((t=>{var n;const u=s.get(t.queryHash);u?u.state.dataUpdatedAt<t.state.dataUpdatedAt&&u.setState(t.state):s.build(e,{...null==r||null==(n=r.defaultOptions)?void 0:n.queries,queryKey:t.queryKey,queryHash:t.queryHash},t.state)}))}(e,u.clientState,s)}else t.removeClient()}catch(e){t.removeClient()}}async function c({queryClient:e,persister:t,buster:r="",dehydrateOptions:n}){const s={buster:r,timestamp:Date.now(),clientState:a(e,n)};await t.persistClient(s)}function l(e){const t=e.queryClient.getQueryCache().subscribe((()=>{c(e)})),r=e.queryClient.getMutationCache().subscribe((()=>{c(e)}));return()=>{t(),r()}}function f(e){let t,r=!1;return[()=>{r=!0,null==t||t()},o(e).then((()=>{r||(t=l(e))}))]}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},y.apply(this,arguments)}e.PersistQueryClientProvider=({client:e,children:t,persistOptions:n,onSuccess:u,...i})=>{const[a,o]=s.useState(!0),c=s.useRef({persistOptions:n,onSuccess:u});return s.useEffect((()=>{c.current={persistOptions:n,onSuccess:u}})),s.useEffect((()=>{let t=!1;o(!0);const[r,n]=f({...c.current.persistOptions,queryClient:e});return n.then((()=>{t||(null==c.current.onSuccess||c.current.onSuccess(),o(!1))})),()=>{t=!0,r()}}),[e]),s.createElement(r.QueryClientProvider,y({client:e},i),s.createElement(r.IsRestoringProvider,{value:a},t))},e.persistQueryClient=f,e.persistQueryClientRestore=o,e.persistQueryClientSave=c,e.persistQueryClientSubscribe=l,e.removeOldestQuery=({persistedClient:e})=>{const t=[...e.clientState.mutations],r=[...e.clientState.queries],n={...e,clientState:{mutations:t,queries:r}},s=[...r].sort(((e,t)=>e.state.dataUpdatedAt-t.state.dataUpdatedAt));if(s.length>0){const e=s.shift();return n.clientState.queries=r.filter((t=>t!==e)),n}},Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=index.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.production.js","sources":["../../src/persist.ts","../../src/PersistQueryClientProvider.tsx","../../src/retryStrategies.ts"],"sourcesContent":["import type {\n QueryClient,\n DehydratedState,\n DehydrateOptions,\n HydrateOptions,\n} from '@tanstack/query-core'\nimport { dehydrate, hydrate } from '@tanstack/query-core'\n\nexport type Promisable<T> = T | PromiseLike<T>\n\nexport interface Persister {\n persistClient(persistClient: PersistedClient): Promisable<void>\n restoreClient(): Promisable<PersistedClient | undefined>\n removeClient(): Promisable<void>\n}\n\nexport interface PersistedClient {\n timestamp: number\n buster: string\n clientState: DehydratedState\n}\n\nexport interface PersistQueryClienRootOptions {\n /** The QueryClient to persist */\n queryClient: QueryClient\n /** The Persister interface for storing and restoring the cache\n * to/from a persisted location */\n persister: Persister\n /** A unique string that can be used to forcefully\n * invalidate existing caches if they do not share the same buster string */\n buster?: string\n}\n\nexport interface PersistedQueryClientRestoreOptions\n extends PersistQueryClienRootOptions {\n /** The max-allowed age of the cache in milliseconds.\n * If a persisted cache is found that is older than this\n * time, it will be discarded */\n maxAge?: number\n /** The options passed to the hydrate function */\n hydrateOptions?: HydrateOptions\n}\n\nexport interface PersistedQueryClientSaveOptions\n extends PersistQueryClienRootOptions {\n /** The options passed to the dehydrate function */\n dehydrateOptions?: DehydrateOptions\n}\n\nexport interface PersistQueryClientOptions\n extends PersistedQueryClientRestoreOptions,\n PersistedQueryClientSaveOptions,\n PersistQueryClienRootOptions {}\n\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\nexport async function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions,\n}: PersistedQueryClientRestoreOptions) {\n try {\n const persistedClient = await persister.restoreClient()\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge\n const busted = persistedClient.buster !== buster\n if (expired || busted) {\n persister.removeClient()\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions)\n }\n } else {\n persister.removeClient()\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err)\n queryClient\n .getLogger()\n .warn(\n 'Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.',\n )\n }\n persister.removeClient()\n }\n}\n\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\nexport async function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions,\n}: PersistedQueryClientSaveOptions) {\n const persistClient: PersistedClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions),\n }\n\n await persister.persistClient(persistClient)\n}\n\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\nexport function persistQueryClientSubscribe(\n props: PersistedQueryClientSaveOptions,\n) {\n const unsubscribeQueryCache = props.queryClient\n .getQueryCache()\n .subscribe(() => {\n persistQueryClientSave(props)\n })\n\n const unusbscribeMutationCache = props.queryClient\n .getMutationCache()\n .subscribe(() => {\n persistQueryClientSave(props)\n })\n\n return () => {\n unsubscribeQueryCache()\n unusbscribeMutationCache()\n }\n}\n\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\nexport function persistQueryClient(\n props: PersistQueryClientOptions,\n): [() => void, Promise<void>] {\n let hasUnsubscribed = false\n let persistQueryClientUnsubscribe: (() => void) | undefined\n const unsubscribe = () => {\n hasUnsubscribed = true\n persistQueryClientUnsubscribe?.()\n }\n\n // Attempt restore\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props)\n }\n })\n\n return [unsubscribe, restorePromise]\n}\n","import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from './persist'\nimport { persistQueryClient } from './persist'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n","import type { PersistedClient } from './persist'\n\nexport type PersistRetryer = (props: {\n persistedClient: PersistedClient\n error: Error\n errorCount: number\n}) => PersistedClient | undefined\n\nexport const removeOldestQuery: PersistRetryer = ({ persistedClient }) => {\n const mutations = [...persistedClient.clientState.mutations]\n const queries = [...persistedClient.clientState.queries]\n const client: PersistedClient = {\n ...persistedClient,\n clientState: { mutations, queries },\n }\n\n // sort queries by dataUpdatedAt (oldest first)\n const sortedQueries = [...queries].sort(\n (a, b) => a.state.dataUpdatedAt - b.state.dataUpdatedAt,\n )\n\n // clean oldest query\n if (sortedQueries.length > 0) {\n const oldestData = sortedQueries.shift()\n client.clientState.queries = queries.filter((q) => q !== oldestData)\n return client\n }\n\n return undefined\n}\n"],"names":["async","persistQueryClientRestore","queryClient","persister","maxAge","buster","hydrateOptions","persistedClient","restoreClient","timestamp","expired","Date","now","busted","removeClient","hydrate","clientState","err","persistQueryClientSave","dehydrateOptions","persistClient","dehydrate","persistQueryClientSubscribe","props","unsubscribeQueryCache","getQueryCache","subscribe","unusbscribeMutationCache","getMutationCache","persistQueryClient","persistQueryClientUnsubscribe","hasUnsubscribed","then","client","children","persistOptions","onSuccess","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","QueryClientProvider","_extends","createElement","IsRestoringProvider","value","mutations","queries","sortedQueries","sort","a","b","state","dataUpdatedAt","length","oldestData","shift","filter","q"],"mappings":"ytBA4DOA,eAAeC,GAA0BC,YAC9CA,EAD8CC,UAE9CA,EAF8CC,OAG9CA,EAAS,MAHqCC,OAI9CA,EAAS,GAJqCC,eAK9CA,IAEA,IACE,MAAMC,QAAwBJ,EAAUK,gBAExC,GAAID,EACF,GAAIA,EAAgBE,UAAW,CAC7B,MAAMC,EAAUC,KAAKC,MAAQL,EAAgBE,UAAYL,EACnDS,EAASN,EAAgBF,SAAWA,EACtCK,GAAWG,EACbV,EAAUW,eAEVC,EAAAA,QAAQb,EAAaK,EAAgBS,YAAaV,QAGpDH,EAAUW,eAGd,MAAOG,GASPd,EAAUW,gBASPd,eAAekB,GAAuBhB,YAC3CA,EAD2CC,UAE3CA,EAF2CE,OAG3CA,EAAS,GAHkCc,iBAI3CA,IAEA,MAAMC,EAAiC,CACrCf,SACAI,UAAWE,KAAKC,MAChBI,YAAaK,EAAAA,UAAUnB,EAAaiB,UAGhChB,EAAUiB,cAAcA,GAOzB,SAASE,EACdC,GAEA,MAAMC,EAAwBD,EAAMrB,YACjCuB,gBACAC,WAAU,KACTR,EAAuBK,MAGrBI,EAA2BJ,EAAMrB,YACpC0B,mBACAF,WAAU,KACTR,EAAuBK,MAG3B,MAAO,KACLC,IACAG,KAOG,SAASE,EACdN,GAEA,IACIO,EADAC,GAAkB,EAetB,MAAO,CAba,KAClBA,GAAkB,EACW,MAA7BD,GAAAA,KAIqB7B,EAA0BsB,GAAOS,MAAK,KACtDD,IAEHD,EAAgCR,EAA4BC,yQClJxB,EACxCU,SACAC,WACAC,iBACAC,eACGb,MAEH,MAAOc,EAAaC,GAAkBC,EAAMC,UAAS,GAC/CC,EAAOF,EAAMG,OAAO,CAAEP,iBAAgBC,cA2B5C,OAzBAG,EAAMI,WAAU,KACdF,EAAKG,QAAU,CAAET,iBAAgBC,gBAGnCG,EAAMI,WAAU,KACd,IAAIE,GAAU,EACdP,GAAe,GACf,MAAOQ,EAAaC,GAAWlB,EAAmB,IAC7CY,EAAKG,QAAQT,eAChBjC,YAAa+B,IAUf,OAPAc,EAAQf,MAAK,KACNa,UACHJ,EAAKG,QAAQR,WAAbK,EAAKG,QAAQR,YACbE,GAAe,OAIZ,KACLO,GAAU,EACVC,OAED,CAACb,IAGFM,gBAACS,EAADA,oBAAAC,EAAA,CAAqBhB,OAAQA,GAAYV,GACvCgB,EAAAW,cAACC,EAAAA,oBAAD,CAAqBC,MAAOf,GAAcH,yICzCC,EAAG3B,sBAClD,MAAM8C,EAAY,IAAI9C,EAAgBS,YAAYqC,WAC5CC,EAAU,IAAI/C,EAAgBS,YAAYsC,SAC1CrB,EAA0B,IAC3B1B,EACHS,YAAa,CAAEqC,YAAWC,YAItBC,EAAgB,IAAID,GAASE,MACjC,CAACC,EAAGC,IAAMD,EAAEE,MAAMC,cAAgBF,EAAEC,MAAMC,gBAI5C,GAAIL,EAAcM,OAAS,EAAG,CAC5B,MAAMC,EAAaP,EAAcQ,QAEjC,OADA9B,EAAOjB,YAAYsC,QAAUA,EAAQU,QAAQC,GAAMA,IAAMH,IAClD7B"}
1
+ {"version":3,"file":"index.production.js","sources":["../../../query-core/build/lib/hydration.mjs","../../../query-persist-client-core/build/lib/persist.mjs","../../src/PersistQueryClientProvider.tsx","../../../query-persist-client-core/build/lib/retryStrategies.mjs"],"sourcesContent":["// TYPES\n// FUNCTIONS\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state\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.\n\n\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash\n };\n}\n\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\n\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === 'success';\n}\n\nfunction dehydrate(client, options = {}) {\n const mutations = [];\n const queries = [];\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;\n client.getMutationCache().getAll().forEach(mutation => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation));\n }\n });\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;\n client.getQueryCache().getAll().forEach(query => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query));\n }\n });\n }\n\n return {\n mutations,\n queries\n };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return;\n }\n\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const queries = dehydratedState.queries || [];\n mutations.forEach(dehydratedMutation => {\n var _options$defaultOptio;\n\n mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),\n mutationKey: dehydratedMutation.mutationKey\n }, dehydratedMutation.state);\n });\n queries.forEach(dehydratedQuery => {\n var _options$defaultOptio2;\n\n const query = queryCache.get(dehydratedQuery.queryHash); // Do not hydrate if an existing query exists with newer data\n\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQuery.state.dataUpdatedAt) {\n query.setState(dehydratedQuery.state);\n }\n\n return;\n } // Restore query\n\n\n queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash\n }, dehydratedQuery.state);\n });\n}\n\nexport { dehydrate, hydrate };\n//# sourceMappingURL=hydration.mjs.map\n","import { hydrate, dehydrate } from '@tanstack/query-core';\n\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n\n if (expired || busted) {\n persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err);\n queryClient.getLogger().warn('Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.');\n }\n\n persister.removeClient();\n }\n}\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\n\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\n\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe(() => {\n persistQueryClientSave(props);\n });\n const unusbscribeMutationCache = props.queryClient.getMutationCache().subscribe(() => {\n persistQueryClientSave(props);\n });\n return () => {\n unsubscribeQueryCache();\n unusbscribeMutationCache();\n };\n}\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\n\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe == null ? void 0 : persistQueryClientUnsubscribe();\n }; // Attempt restore\n\n\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\n\nexport { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe };\n//# sourceMappingURL=persist.mjs.map\n","import * as React from 'react'\n\nimport type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'\nimport { persistQueryClient } from '@tanstack/query-persist-client-core'\nimport type { QueryClientProviderProps } from '@tanstack/react-query'\nimport { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'\n\nexport type PersistQueryClientProviderProps = QueryClientProviderProps & {\n persistOptions: Omit<PersistQueryClientOptions, 'queryClient'>\n onSuccess?: () => void\n}\n\nexport const PersistQueryClientProvider = ({\n client,\n children,\n persistOptions,\n onSuccess,\n ...props\n}: PersistQueryClientProviderProps): JSX.Element => {\n const [isRestoring, setIsRestoring] = React.useState(true)\n const refs = React.useRef({ persistOptions, onSuccess })\n\n React.useEffect(() => {\n refs.current = { persistOptions, onSuccess }\n })\n\n React.useEffect(() => {\n let isStale = false\n setIsRestoring(true)\n const [unsubscribe, promise] = persistQueryClient({\n ...refs.current.persistOptions,\n queryClient: client,\n })\n\n promise.then(() => {\n if (!isStale) {\n refs.current.onSuccess?.()\n setIsRestoring(false)\n }\n })\n\n return () => {\n isStale = true\n unsubscribe()\n }\n }, [client])\n\n return (\n <QueryClientProvider client={client} {...props}>\n <IsRestoringProvider value={isRestoring}>{children}</IsRestoringProvider>\n </QueryClientProvider>\n )\n}\n","const removeOldestQuery = ({\n persistedClient\n}) => {\n const mutations = [...persistedClient.clientState.mutations];\n const queries = [...persistedClient.clientState.queries];\n const client = { ...persistedClient,\n clientState: {\n mutations,\n queries\n }\n }; // sort queries by dataUpdatedAt (oldest first)\n\n const sortedQueries = [...queries].sort((a, b) => a.state.dataUpdatedAt - b.state.dataUpdatedAt); // clean oldest query\n\n if (sortedQueries.length > 0) {\n const oldestData = sortedQueries.shift();\n client.clientState.queries = queries.filter(q => q !== oldestData);\n return client;\n }\n\n return undefined;\n};\n\nexport { removeOldestQuery };\n//# sourceMappingURL=retryStrategies.mjs.map\n"],"names":["defaultShouldDehydrateMutation","mutation","state","isPaused","defaultShouldDehydrateQuery","query","status","dehydrate","client","options","mutations","queries","dehydrateMutations","shouldDehydrateMutation","getMutationCache","getAll","forEach","push","mutationKey","dehydrateMutation","dehydrateQueries","shouldDehydrateQuery","getQueryCache","queryKey","queryHash","dehydrateQuery","async","persistQueryClientRestore","queryClient","persister","maxAge","buster","hydrateOptions","persistedClient","restoreClient","timestamp","expired","Date","now","busted","removeClient","dehydratedState","mutationCache","queryCache","dehydratedMutation","_options$defaultOptio","build","defaultOptions","dehydratedQuery","_options$defaultOptio2","get","dataUpdatedAt","setState","hydrate","clientState","err","persistQueryClientSave","dehydrateOptions","persistClient","persistQueryClientSubscribe","props","unsubscribeQueryCache","subscribe","unusbscribeMutationCache","persistQueryClient","persistQueryClientUnsubscribe","hasUnsubscribed","then","children","persistOptions","onSuccess","isRestoring","setIsRestoring","React","useState","refs","useRef","useEffect","current","isStale","unsubscribe","promise","QueryClientProvider","_extends","createElement","IsRestoringProvider","value","sortedQueries","sort","a","b","length","oldestData","shift","filter","q"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-query-persist-client",
3
- "version": "4.6.0",
3
+ "version": "4.7.1",
4
4
  "description": "TODO",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
@@ -31,8 +31,10 @@
31
31
  "clean": "rm -rf ./build",
32
32
  "test:eslint": "../../node_modules/.bin/eslint --ext .ts,.tsx ./src"
33
33
  },
34
+ "dependencies": {
35
+ "@tanstack/query-persist-client-core": "4.7.1"
36
+ },
34
37
  "peerDependencies": {
35
- "@tanstack/query-core": "4.6.0",
36
- "@tanstack/react-query": "4.6.0"
38
+ "@tanstack/react-query": "4.7.1"
37
39
  }
38
40
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react'
2
2
 
3
- import type { PersistQueryClientOptions } from './persist'
4
- import { persistQueryClient } from './persist'
3
+ import type { PersistQueryClientOptions } from '@tanstack/query-persist-client-core'
4
+ import { persistQueryClient } from '@tanstack/query-persist-client-core'
5
5
  import type { QueryClientProviderProps } from '@tanstack/react-query'
6
6
  import { QueryClientProvider, IsRestoringProvider } from '@tanstack/react-query'
7
7
 
@@ -6,9 +6,13 @@ import type {
6
6
  DefinedUseQueryResult,
7
7
  } from '@tanstack/react-query'
8
8
  import { QueryClient, useQuery, useQueries } from '@tanstack/react-query'
9
+ import type {
10
+ PersistedClient,
11
+ Persister,
12
+ } from '@tanstack/query-persist-client-core'
13
+ import { persistQueryClientSave } from '@tanstack/query-persist-client-core'
14
+
9
15
  import { createQueryClient, mockLogger, queryKey, sleep } from './utils'
10
- import type { PersistedClient, Persister } from '../persist'
11
- import { persistQueryClientSave } from '../persist'
12
16
  import { PersistQueryClientProvider } from '../PersistQueryClientProvider'
13
17
 
14
18
  const createMockPersister = (): Persister => {
@@ -1,6 +1,9 @@
1
1
  import { createQueryClient, sleep } from './utils'
2
- import type { PersistedClient, Persister } from '../persist'
3
- import { persistQueryClientSubscribe } from '../persist'
2
+ import type {
3
+ PersistedClient,
4
+ Persister,
5
+ } from '@tanstack/query-persist-client-core'
6
+ import { persistQueryClientSubscribe } from '@tanstack/query-persist-client-core'
4
7
 
5
8
  const createMockPersister = (): Persister => {
6
9
  let storedState: PersistedClient | undefined
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
- export * from './persist'
1
+ // Re-export core
2
+ export * from '@tanstack/query-persist-client-core'
3
+
2
4
  export * from './PersistQueryClientProvider'
3
- export * from './retryStrategies'