UNPKG

react-query

Version:

Hooks for managing, caching and syncing asynchronous and remote data in React

3 lines (2 loc) 3.73 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactQueryPersistQueryClient={},e.React)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(t);function u(e){return e.state.isPaused}function i(e){return"success"===e.state.status}function s(e,t={}){const n=[],r=[];if(!1!==t.dehydrateMutations){const r=t.shouldDehydrateMutation||u;e.getMutationCache().getAll().forEach((e=>{r(e)&&n.push(function(e){return{mutationKey:e.options.mutationKey,state:e.state}}(e))}))}if(!1!==t.dehydrateQueries){const n=t.shouldDehydrateQuery||i;e.getQueryCache().getAll().forEach((e=>{n(e)&&r.push(function(e){return{state:e.state,queryKey:e.queryKey,queryHash:e.queryHash}}(e))}))}return{mutations:n,queries:r}}async function o({queryClient:e,persister:t,maxAge:n=864e5,buster:r="",hydrateOptions:u}){if("undefined"!=typeof window)try{const i=await t.restoreClient();if(i)if(i.timestamp){const s=Date.now()-i.timestamp>n,o=i.buster!==r;s||o?t.removeClient():function(e,t,n){if("object"!=typeof t||null===t)return;const r=e.getMutationCache(),u=e.getQueryCache(),i=t.mutations||[],s=t.queries||[];i.forEach((t=>{var u;r.build(e,{...null==n||null==(u=n.defaultOptions)?void 0:u.mutations,mutationKey:t.mutationKey},t.state)})),s.forEach((t=>{var r;const i=u.get(t.queryHash);i?i.state.dataUpdatedAt<t.state.dataUpdatedAt&&i.setState(t.state):u.build(e,{...null==n||null==(r=n.defaultOptions)?void 0:r.queries,queryKey:t.queryKey,queryHash:t.queryHash},t.state)}))}(e,i.clientState,u)}else t.removeClient()}catch(e){t.removeClient()}}async function a({queryClient:e,persister:t,buster:n="",dehydrateOptions:r}){if("undefined"!=typeof window){const u={buster:n,timestamp:Date.now(),clientState:s(e,r)};await t.persistClient(u)}}function c(e){const t=e.queryClient.getQueryCache().subscribe((()=>{a(e)})),n=e.queryClient.getMutationCache().subscribe((()=>{a(e)}));return()=>{t(),n()}}function l(e){let t,n=!1;let r=Promise.resolve();return"undefined"!=typeof window&&(r=o(e).then((()=>{n||(t=c(e))}))),[()=>{n=!0,null==t||t()},r]}function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}const d=r.default.createContext(void 0),y=r.default.createContext(!1);const p=({client:e,children:t,context:n,contextSharing:u=!1})=>{r.default.useEffect((()=>(e.mount(),()=>{e.unmount()})),[e]);const i=function(e,t){return e||(t&&"undefined"!=typeof window?(window.ReactQueryClientContext||(window.ReactQueryClientContext=d),window.ReactQueryClientContext):d)}(n,u);return r.default.createElement(y.Provider,{value:!n&&u},r.default.createElement(i.Provider,{value:e},t))},h=r.default.createContext(!1).Provider;e.PersistQueryClientProvider=({client:e,children:t,persistOptions:n,onSuccess:u,...i})=>{const[s,o]=r.default.useState(!0),a=r.default.useRef({persistOptions:n,onSuccess:u});return r.default.useEffect((()=>{a.current={persistOptions:n,onSuccess:u}})),r.default.useEffect((()=>{let t=!1;o(!0);const[n,r]=l({...a.current.persistOptions,queryClient:e});return r.then((()=>{t||(null==a.current.onSuccess||a.current.onSuccess(),o(!1))})),()=>{t=!0,n()}}),[e]),r.default.createElement(p,f({client:e},i),r.default.createElement(h,{value:s},t))},e.persistQueryClient=l,e.persistQueryClientRestore=o,e.persistQueryClientSave=a,e.persistQueryClientSubscribe=c,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=persistQueryClient.production.min.js.map