@petbee/session-core
Version:
Petbee Session core tracking logic
2 lines (1 loc) • 922 B
JavaScript
var PetbeeSession=function(e){"use strict";let t=!1;return e.init=function(e){if(t)return void console.warn("PetbeeSession: Already initialized.");t=!0;const n=(e,t,i=3,r=1e3)=>fetch(e,t).catch((o=>{if(i>0)return new Promise((e=>setTimeout(e,r))).then((()=>n(e,t,i-1,2*r)));throw o}));((e,t)=>{let n;return(...i)=>{clearTimeout(n),n=window.setTimeout((()=>e(...i)),t)}})((()=>{const t={referrer:window.location.href,originalReferrer:document.referrer||""};n((e=>{switch(e){case"development":case"staging":default:return"https://api.dev.petbee.com.br/sessions/v1";case"production":return"https://api.petbee.com.br/sessions/v1"}})(e.env??"development"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),credentials:"include"}).catch((e=>{console.error("PetbeeSession: Failed to send session data after retries.",e)}))}),e.debounceDelay??500)()},e.resetInitialization=function(){t=!1},e}({});