@embrace-io/web-sdk
Version:
76 lines (75 loc) • 2.7 kB
JavaScript
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