@embrace-io/web-sdk
Version:
3 lines (2 loc) • 1.62 kB
JavaScript
import"uuid";import{bulkAddEventListener as t}from"../../../utils/bulkAddEventListener/bulkAddEventListener.js";import{bulkRemoveEventListener as i}from"../../../utils/bulkRemoveEventListener/bulkRemoveEventListener.js";import"@opentelemetry/core";import{throttle as e}from"../../../utils/throttle.js";import{EmbraceInstrumentationBase as s}from"../../EmbraceInstrumentationBase/EmbraceInstrumentationBase.js";import{TIMEOUT_TIME as n,WINDOW_USER_EVENTS as o,EVENT_THROTTLING_TIME_WINDOW as a}from"./constants.js";class r extends s{constructor({diag:s}={}){super({instrumentationName:"SpanSessionBrowserActivityInstrumentation",instrumentationVersion:"1.0.0",diag:s,config:{}}),this.disable=()=>{i({target:window,events:o,callback:this._onActivityThrottled}),this._activityTimeout&&clearTimeout(this._activityTimeout),this._activityTimeout=null},this.enable=()=>{t({target:window,events:o,callback:this._onActivityThrottled})},this._onInactivity=()=>{this._diag.debug("Inactivity detected"),this._activityTimeout&&clearTimeout(this._activityTimeout),this._activityTimeout=null,this.sessionManager.endSessionSpanInternal("inactivity")},this._onActivity=()=>{this._diag.debug("Activity detected"),this._activityTimeout&&clearTimeout(this._activityTimeout),this.sessionManager.getSessionId()||this.sessionManager.startSessionSpan(),this._activityTimeout=setTimeout(this._onInactivity,n)},this._activityTimeout=null,this._onActivityThrottled=e(this._onActivity,a),this._config.enabled&&this.enable()}}export{r as SpanSessionBrowserActivityInstrumentation};
//# sourceMappingURL=SpanSessionBrowserActivityInstrumentation.js.map