@embrace-io/web-sdk
Version:
33 lines (32 loc) • 1.36 kB
JavaScript
import { createSafeProxy } from "../../../utils/createSafeProxy/createSafeProxy.js";
import { NoOpUserSessionManager } from "../../manager/NoOpUserSessionManager/NoOpUserSessionManager.js";
import { ProxyUserSessionManager } from "../../manager/ProxyUserSessionManager/ProxyUserSessionManager.js";
import { diag } from "@opentelemetry/api";
//#region src/api-sessions/api/SessionAPI/SessionAPI.ts
const NOOP_USER_SESSION_MANAGER = new NoOpUserSessionManager();
const INTERNAL_METHODS = /* @__PURE__ */ new Set(["setDelegate", "getDelegate"]);
var SessionAPI = class SessionAPI {
static _instance;
static getInstance() {
if (!SessionAPI._instance) {
const proxyManager = new ProxyUserSessionManager();
const safeManager = createSafeProxy(proxyManager, NOOP_USER_SESSION_MANAGER, diag.createComponentLogger({ namespace: "SessionAPI" }), INTERNAL_METHODS);
SessionAPI._instance = Object.assign(safeManager, {
setGlobalUserSessionManager(userSessionManager) {
proxyManager.setDelegate(userSessionManager);
},
getUserSessionManager() {
return proxyManager;
}
});
}
return SessionAPI._instance;
}
/** @internal For testing only. Resets the global singleton between tests. */
static resetInstance() {
SessionAPI._instance = void 0;
}
};
//#endregion
export { SessionAPI };
//# sourceMappingURL=SessionAPI.js.map