UNPKG

@analytics/session-utils

Version:
3 lines (2 loc) 1.66 kB
import{uuid as e}from"analytics-utils";import{getSessionItem as r,setSessionItem as i}from"@analytics/session-storage-utils";import{getCookie as n,setCookie as t,removeCookie as a}from"@analytics/cookie-utils";import{get as s,set as o}from"@analytics/global-storage-utils";var u="__session",d=["id","createdAt","created"];function c(e){var r=e?new Date(e):new Date;return[r.toISOString(),r.getTime()]}function l(){var r=c(),i=r[0],n=r[1];return{id:e(),created:n,createdAt:i}}var f={session:[r,i],page:[s,o]};function v(e,r){for(var i=f[e],n=i[0],t=i[1],a=l(),s=!1,o={},u=0;u<d.length;u++){var c=d[u],v="__"+e+"__session__"+c,p=n(v);s=r||!p,(r||!r&&!p)&&t(v,a[c]);var g=p&&!r?p:a[c],_="created"!==c?g:Number(g);o[c]=_}return m(o,s)}function m(e,r){var i=Date.now();return e.elapsed=i-e.created,e.expires&&(e.remaining=Math.max(e.expires-i,0),e.isExpired=0===e.remaining),e.isNew=r,e}function p(e,r){void 0===e&&(e=30);var i=n(u),t=i?JSON.parse(i):g(e);return r?t:m(t,!i)}function g(e,r,i){void 0===e&&(e=30);var n=i?p(e,!0):l(),a=60*e,s=n.created;if(i){var o=c(),d=o[0],f=o[1];n.modified=f,n.modifiedAt=d,s=f}var v=c(s+1e3*a),g=v[0];return n.expires=v[1],n.expiresAt=g,n.duration=1e3*a,r&&(n=Object.assign(n,r)),t(u,JSON.stringify(n),a),m(n,!i)}var _=function(e,r){return void 0===e&&(e=30),g(e||1,r,!0)},b=function(){return a(u)},x=v.bind(null,"session"),y=v.bind(null,"session",!0),w=v.bind(null,"page"),A=v.bind(null,"page",!0);export{_ as extendSession,w as getPageSession,p as getSession,x as getTabSession,b as removeSession,l as sessionData,A as setPageSession,g as setSession,y as setTabSession}; //# sourceMappingURL=analytics-util-session.module.js.map