UNPKG

alpinejs-cache

Version:
2 lines (1 loc) 1.32 kB
var w={setItem(t,a){return localStorage.setItem(t,JSON.stringify(a))},getItem(t){let a=localStorage.getItem(t);return a!==void 0?JSON.parse(a):null}},O=function(t){let a=new Map,l=(e,r,i)=>{for(let n of o(i,e))n(r)},o=(e,r)=>(a.has(e)||a.set(e,new Map),a.get(e).has(r)||a.get(e).set(r,new Set),a.get(e).get(r)),s=()=>{let e,r,i;return i=c.defaultDriver,t.interceptor((n,u,S,I)=>{let d=f(e||I),x=r||60,h=!1;o(i,d).add(S);let m;return M(d,i)?m=D(d,i):(h=!0,m={data:n,expires_at:g()+x*1e3}),t.effect(()=>{let p=u();p?._x_interceptor||(h&&v(d,p,x,i),h=!0),S(p)}),m.data},n=>{n.as=u=>(e=u,n),n.for=u=>(r=u,n),n.until=u=>(r=Math.max(u-g(),0),n),n.using=u=>(i=u,n)})};Object.defineProperty(t,"$cache",{get:()=>s()}),t.magic("cache",s);let c={defaultDriver:w,invalidate:(e,r=null)=>{e=f(e),v(e,void 0,0,r||c.defaultDriver),l(e,void 0,r||c.defaultDriver)},set:(e,r,i,n=null)=>{e=f(e),v(e,r,i,n||c.defaultDriver),l(e,r,n||c.defaultDriver)},get:(e,r=null)=>(e=f(e),D(e,r||c.defaultDriver)?.data)};t.cache=c};function f(t){return`_cache_${t}`}function g(){return Date.now()}function M(t,a){return D(t,a)!==void 0}function D(t,a){let l=a.getItem(t);if(!(!l?.expires_at||g()>l?.expires_at))return l}function v(t,a,l,o){let s=g()+l*1e3,c=Object.create(null);o.setItem(t,{data:a,expires_at:s})}var _=O;var H=_;export{H as default};