@junobuild/analytics
Version:
Tracker for Juno analytics
3 lines (2 loc) • 1.38 kB
JavaScript
function i(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function c(e,t){let r=indexedDB.open(e);r.onupgradeneeded=()=>r.result.createObjectStore(t);let n=i(r);return(o,l)=>n.then(d=>l(d.transaction(t,o).objectStore(t)))}var f;function y(){return f||(f=c("keyval-store","keyval")),f}function a(e,t,r=y()){return r("readwrite",n=>(n.put(t,e),i(n.transaction)))}function s(e,t=y()){return t("readwrite",r=>(e.forEach(n=>r.delete(n)),i(r.transaction)))}function P(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},i(e.transaction)}function u(e=y()){return e("readonly",t=>{if(t.getAll&&t.getAllKeys)return Promise.all([i(t.getAllKeys()),i(t.getAll())]).then(([n,o])=>n.map((l,d)=>[l,o[d]]));let r=[];return e("readonly",n=>P(n,o=>r.push([o.key,o.value])).then(()=>r))})}var m=c("juno-views","views"),p=c("juno-events","events"),v=c("juno-metrics","metrics"),I=({key:e,view:t})=>a(e,t,m),b=()=>u(m),h=e=>s(e,m),k=({key:e,track:t})=>a(e,t,p),K=()=>u(p),V=e=>s(e,p),x=({key:e,view:t})=>a(e,t,v),M=()=>u(v),A=e=>s(e,v);export{h as delPageViews,A as delPerformanceMetrics,V as delTrackEvents,b as getPageViews,M as getPerformanceMetrics,K as getTrackEvents,I as setPageView,x as setPerformanceMetric,k as setTrackEvent};
//# sourceMappingURL=idb.services-CVJFLYYN.js.map