UNPKG

@analytics/session-utils

Version:
3 lines (2 loc) 1.64 kB
var e=require("analytics-utils"),s=require("@analytics/session-storage-utils"),i=require("@analytics/cookie-utils"),t=require("@analytics/global-storage-utils"),r="__session",n=["id","createdAt","created"];function o(e){var s=e?new Date(e):new Date;return[s.toISOString(),s.getTime()]}function a(){var s=o(),i=s[0],t=s[1];return{id:e.uuid(),created:t,createdAt:i}}var u={session:[s.getSessionItem,s.setSessionItem],page:[t.get,t.set]};function d(e,s){for(var i=u[e],t=i[0],r=i[1],o=a(),d=!1,g={},l=0;l<n.length;l++){var p=n[l],v="__"+e+"__session__"+p,x=t(v);d=s||!x,(s||!s&&!x)&&r(v,o[p]);var S=x&&!s?x:o[p],f="created"!==p?S:Number(S);g[p]=f}return c(g,d)}function c(e,s){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=s,e}function g(e,s){void 0===e&&(e=30);var t=i.getCookie(r),n=t?JSON.parse(t):l(e);return s?n:c(n,!t)}function l(e,s,t){void 0===e&&(e=30);var n=t?g(e,!0):a(),u=60*e,d=n.created;if(t){var l=o(),p=l[0],v=l[1];n.modified=v,n.modifiedAt=p,d=v}var x=o(d+1e3*u),S=x[0];return n.expires=x[1],n.expiresAt=S,n.duration=1e3*u,s&&(n=Object.assign(n,s)),i.setCookie(r,JSON.stringify(n),u),c(n,!t)}var p=d.bind(null,"session"),v=d.bind(null,"session",!0),x=d.bind(null,"page"),S=d.bind(null,"page",!0);exports.extendSession=function(e,s){return void 0===e&&(e=30),l(e||1,s,!0)},exports.getPageSession=x,exports.getSession=g,exports.getTabSession=p,exports.removeSession=function(){return i.removeCookie(r)},exports.sessionData=a,exports.setPageSession=S,exports.setSession=l,exports.setTabSession=v; //# sourceMappingURL=analytics-util-session.js.map