UNPKG

autotel

Version:
57 lines (55 loc) 1.67 kB
import { trace } from '@opentelemetry/api'; // src/tracer-provider.ts var AUTOTEL_GLOBAL_SYMBOL = /* @__PURE__ */ Symbol.for("autotel"); function createState() { return { isolatedTracerProvider: null }; } function getGlobalState() { const initialState = createState(); try { const g = globalThis; if (typeof g !== "object" || g === null) { console.warn( "[autotel] globalThis is not available, using fallback state" ); return initialState; } if (!g[AUTOTEL_GLOBAL_SYMBOL]) { Object.defineProperty(g, AUTOTEL_GLOBAL_SYMBOL, { value: initialState, writable: false, // Lock the slot (not the contents) configurable: false, enumerable: false }); } return g[AUTOTEL_GLOBAL_SYMBOL]; } catch (error) { if (error instanceof Error) { console.error( `[autotel] Failed to access global state: ${error.message}` ); } else { console.error( `[autotel] Failed to access global state: ${String(error)}` ); } return initialState; } } function setAutotelTracerProvider(provider) { getGlobalState().isolatedTracerProvider = provider; } function getAutotelTracerProvider() { const { isolatedTracerProvider } = getGlobalState(); if (isolatedTracerProvider) return isolatedTracerProvider; return trace.getTracerProvider(); } function getAutotelTracer(name = "autotel", version) { return getAutotelTracerProvider().getTracer(name, version); } export { getAutotelTracer, getAutotelTracerProvider, setAutotelTracerProvider }; //# sourceMappingURL=chunk-HA2WBOGQ.js.map //# sourceMappingURL=chunk-HA2WBOGQ.js.map