UNPKG

@embrace-io/web-sdk

Version:
1 lines 2.22 kB
{"version":3,"file":"TraceAPI.cjs","names":["NoOpTraceManager","ProxyTraceManager","createSafeProxy","diag"],"sources":["../../../../src/api-traces/api/TraceAPI/TraceAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { TraceManager } from '../../manager/index.ts';\nimport { NoOpTraceManager, ProxyTraceManager } from '../../manager/index.ts';\n\n/**\n * Public interface for TraceAPI including SDK-internal methods.\n */\nexport interface TraceAPIInstance extends TraceManager {\n /** @internal SDK use only */\n setGlobalTraceManager(traceManager: TraceManager): void;\n /** @internal SDK use only */\n getTraceManager(): TraceManager;\n}\n\nconst NOOP_TRACE_MANAGER = new NoOpTraceManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class TraceAPI {\n private static _instance?: TraceAPIInstance;\n\n public static getInstance(): TraceAPIInstance {\n if (!TraceAPI._instance) {\n const proxyManager = new ProxyTraceManager();\n\n const safeManager = createSafeProxy(\n proxyManager,\n NOOP_TRACE_MANAGER,\n diag.createComponentLogger({ namespace: 'TraceAPI' }),\n INTERNAL_METHODS,\n );\n\n TraceAPI._instance = Object.assign(safeManager, {\n setGlobalTraceManager(traceManager: TraceManager): void {\n proxyManager.setDelegate(traceManager);\n },\n getTraceManager(): TraceManager {\n return proxyManager;\n },\n }) as TraceAPIInstance;\n }\n\n return TraceAPI._instance;\n }\n\n public static resetInstance(): void {\n TraceAPI._instance = undefined;\n }\n}\n"],"mappings":";;;;;;AAeA,MAAM,qBAAqB,IAAIA,6DAAAA,iBAAiB;AAChD,MAAM,mCAAmB,IAAI,IAAI,CAAC,eAAe,aAAa,CAAC;AAE/D,IAAa,WAAb,MAAa,SAAS;CACpB,OAAe;CAEf,OAAc,cAAgC;EAC5C,IAAI,CAAC,SAAS,WAAW;GACvB,MAAM,eAAe,IAAIC,+DAAAA,kBAAkB;GAE3C,MAAM,cAAcC,8CAAAA,gBAClB,cACA,oBACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,WAAW,CAAC,GACpD,gBACF;GAEA,SAAS,YAAY,OAAO,OAAO,aAAa;IAC9C,sBAAsB,cAAkC;KACtD,aAAa,YAAY,YAAY;IACvC;IACA,kBAAgC;KAC9B,OAAO;IACT;GACF,CAAC;EACH;EAEA,OAAO,SAAS;CAClB;CAEA,OAAc,gBAAsB;EAClC,SAAS,YAAY,KAAA;CACvB;AACF"}