rittenhop-dev/versions/5.94.2/node_modules/@sentry/integrations/esm/transaction.js
2024-09-23 19:40:12 -04:00

48 lines
1.3 KiB
JavaScript

import { convertIntegrationFnToClass } from '@sentry/core';
const INTEGRATION_NAME = 'Transaction';
const transactionIntegration = (() => {
return {
name: INTEGRATION_NAME,
// TODO v8: Remove this
setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function
processEvent(event) {
const frames = _getFramesFromEvent(event);
// use for loop so we don't have to reverse whole frames array
for (let i = frames.length - 1; i >= 0; i--) {
const frame = frames[i];
if (frame.in_app === true) {
event.transaction = _getTransaction(frame);
break;
}
}
return event;
},
};
}) ;
/**
* Add node transaction to the event.
* @deprecated This integration will be removed in v8.
*/
// eslint-disable-next-line deprecation/deprecation
const Transaction = convertIntegrationFnToClass(INTEGRATION_NAME, transactionIntegration)
;
function _getFramesFromEvent(event) {
const exception = event.exception && event.exception.values && event.exception.values[0];
return (exception && exception.stacktrace && exception.stacktrace.frames) || [];
}
function _getTransaction(frame) {
return frame.module || frame.function ? `${frame.module || '?'}/${frame.function || '?'}` : '<unknown>';
}
export { Transaction };
//# sourceMappingURL=transaction.js.map