@embrace-io/web-sdk
Version:
32 lines (31 loc) • 1.17 kB
JavaScript
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