UNPKG

react-query

Version:

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

3 lines (2 loc) 1.08 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactQueryCreateAsyncStoragePersister={})}(this,(function(e){"use strict";const t=()=>{};function n(e,{interval:n=1e3,onError:r=t}={}){if("function"!=typeof e)throw new Error("argument is not function.");let o,i=!1,s=0,a=null;const c=async()=>{if(a){const t=a;a=null;try{i=!0,await e(...t)}catch(e){r(e)}finally{s=Date.now(),i=!1}}},l=async()=>{clearTimeout(o),o=setTimeout((()=>{i?l():c()}),n)};return(...e)=>{a=e;const t=Date.now()-s<n;i||t?l():c()}}e.createAsyncStoragePersister=({storage:e,key:t="REACT_QUERY_OFFLINE_CACHE",throttleTime:r=1e3,serialize:o=JSON.stringify,deserialize:i=JSON.parse})=>({persistClient:n((n=>e.setItem(t,o(n))),{interval:r}),restoreClient:async()=>{const n=await e.getItem(t);if(n)return i(n)},removeClient:()=>e.removeItem(t)}),Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=createAsyncStoragePersister.production.min.js.map