UNPKG

@embrace-io/web-sdk

Version:
32 lines (31 loc) 1.17 kB
import { createSafeProxy } from "../../../utils/createSafeProxy/createSafeProxy.js"; import { NoOpTraceManager } from "../../manager/NoOpTraceManager/NoOpTraceManager.js"; import { ProxyTraceManager } from "../../manager/ProxyTraceManager/ProxyTraceManager.js"; import { diag } from "@opentelemetry/api"; //#region src/api-traces/api/TraceAPI/TraceAPI.ts const NOOP_TRACE_MANAGER = new NoOpTraceManager(); const INTERNAL_METHODS = /* @__PURE__ */ new Set(["setDelegate", "getDelegate"]); var TraceAPI = class TraceAPI { static _instance; static getInstance() { if (!TraceAPI._instance) { const proxyManager = new ProxyTraceManager(); const safeManager = createSafeProxy(proxyManager, NOOP_TRACE_MANAGER, diag.createComponentLogger({ namespace: "TraceAPI" }), INTERNAL_METHODS); TraceAPI._instance = Object.assign(safeManager, { setGlobalTraceManager(traceManager) { proxyManager.setDelegate(traceManager); }, getTraceManager() { return proxyManager; } }); } return TraceAPI._instance; } static resetInstance() { TraceAPI._instance = void 0; } }; //#endregion export { TraceAPI }; //# sourceMappingURL=TraceAPI.js.map