UNPKG

@embrace-io/web-sdk

Version:
3 lines (2 loc) 1.39 kB
import{__extends as e}from"tslib";import{hrTimeToMilliseconds as i}from"@opentelemetry/core";import{EmbraceInstrumentationBase as o}from"../../EmbraceInstrumentationBase/EmbraceInstrumentationBase.js";import{TIMEOUT_TIME as t}from"./constants.js";var s=function(o){function s(e){var s=void 0===e?{}:e,n=s.diag,m=s.perf,u=o.call(this,{instrumentationName:"SpanSessionTimeoutInstrumentation",instrumentationVersion:"1.0.0",diag:n,perf:m,config:{}})||this;return u.disable=function(){u._sessionTimeout&&clearTimeout(u._sessionTimeout),u._sessionTimeout=null},u.enable=function(){u._checkTimeout()},u._onTimeout=function(){u._diag.debug("Timeout detected"),u._sessionTimeout&&clearTimeout(u._sessionTimeout),u.sessionManager.endSessionSpanInternal("timer"),u.sessionManager.startSessionSpan(),u._sessionTimeout=setTimeout(u._checkTimeout,t)},u._checkTimeout=function(){var e=u.sessionManager.getSessionStartTime();if(e){var o=u.perf.getNowHRTime(),s=i(o),n=i(e),m=t-(s-n);return m<=0?void u._onTimeout():(u._sessionTimeout&&clearTimeout(u._sessionTimeout),void(u._sessionTimeout=setTimeout(u._checkTimeout,m)))}u._sessionTimeout&&clearTimeout(u._sessionTimeout),u._sessionTimeout=setTimeout(u._checkTimeout,t)},u._sessionTimeout=null,u._config.enabled&&u.enable(),u}return e(s,o),s}(o);export{s as SpanSessionTimeoutInstrumentation}; //# sourceMappingURL=SpanSessionTimeoutInstrumentation.js.map