UNPKG

@embrace-io/web-sdk

Version:
76 lines (75 loc) 2.7 kB
import { OTelPerformanceManager } from "../../utils/PerformanceManager/OTelPerformanceManager.js"; import { log } from "../../api-logs/logAPI.js"; import { session } from "../../api-sessions/sessionAPI.js"; import { InstrumentationAbstract } from "../InstrumentationAbstract/InstrumentationAbstract.js"; //#region src/instrumentations/EmbraceInstrumentationBase/EmbraceInstrumentationBase.ts var EmbraceInstrumentationBase = class extends InstrumentationAbstract { _userSessionManager; _logManager; _perf; _limitManager; _isEnabled = false; _removeSessionPartListeners = {}; _sessionPartListeners = {}; constructor({ instrumentationName, instrumentationVersion, config, diag, perf, limitManager }) { super(instrumentationName, instrumentationVersion, config); if (diag) this._diag = diag; this._perf = perf ?? new OTelPerformanceManager(); this._limitManager = limitManager; this._userSessionManager = session.getUserSessionManager(); this._logManager = log.getLogManager(); } get userSessionManager() { return this._userSessionManager; } get logManager() { return this._logManager; } get perf() { return this._perf; } get limitManager() { return this._limitManager; } setLimitManager(limitManager) { this._limitManager = limitManager; } init() {} setLogManager(logManager) { this._logManager = logManager; } setUserSessionManager(userSessionManager) { this._userSessionManager = userSessionManager; this._registerSessionPartListeners(); } setSessionPartListeners(listeners) { this._sessionPartListeners = listeners; this._registerSessionPartListeners(); } unregisterSessionPartListeners() { if (this._removeSessionPartListeners.start) this._removeSessionPartListeners.start(); if (this._removeSessionPartListeners.end) this._removeSessionPartListeners.end(); this._removeSessionPartListeners = {}; } _registerSessionPartListeners() { if (this._isEnabled && this.userSessionManager) { this.unregisterSessionPartListeners(); if (this._sessionPartListeners.start) this._removeSessionPartListeners.start = this.userSessionManager.addSessionPartStartedListener((event) => this._sessionPartListeners.start?.(event)); if (this._sessionPartListeners.end) this._removeSessionPartListeners.end = this.userSessionManager.addSessionPartEndedListener(() => this._sessionPartListeners.end?.()); } } disable() { if (!this._isEnabled) return; this._isEnabled = false; this.onDisable(); this.unregisterSessionPartListeners(); } enable() { if (this._isEnabled) return; this._isEnabled = true; this.onEnable(); } }; //#endregion export { EmbraceInstrumentationBase }; //# sourceMappingURL=EmbraceInstrumentationBase.js.map