UNPKG

@sentry/core

Version:
57 lines (54 loc) 1.42 kB
import { DEBUG_BUILD } from '../debug-build.js'; import { debug } from '../utils/debug-logger.js'; import { getFunctionName } from '../utils/stacktrace.js'; const handlers = {}; const instrumented = {}; function addHandler(type, handler) { handlers[type] = handlers[type] || []; handlers[type].push(handler); return () => { const typeHandlers = handlers[type]; if (typeHandlers) { const index = typeHandlers.indexOf(handler); if (index !== -1) { typeHandlers.splice(index, 1); } } }; } function resetInstrumentationHandlers() { Object.keys(handlers).forEach((key) => { handlers[key] = void 0; }); } function maybeInstrument(type, instrumentFn) { if (!instrumented[type]) { instrumented[type] = true; try { instrumentFn(); } catch (e) { DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e); } } } function triggerHandlers(type, data) { const typeHandlers = type && handlers[type]; if (!typeHandlers) { return; } for (const handler of typeHandlers) { try { handler(data); } catch (e) { DEBUG_BUILD && debug.error( `Error while triggering instrumentation handler. Type: ${type} Name: ${getFunctionName(handler)} Error:`, e ); } } } export { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers }; //# sourceMappingURL=handlers.js.map