@sentry/node
Version:
Sentry Node SDK using OpenTelemetry for performance instrumentation
39 lines (36 loc) • 1.03 kB
JavaScript
import { SPAN_STATUS_ERROR } from '@sentry/core';
function setErrorStatus(span, error) {
span.setStatus({
code: SPAN_STATUS_ERROR,
message: `${error.message} ${error.code ? `
Mongoose Error Code: ${error.code}` : ""}`
});
}
function handlePromiseResponse(execResponse, span) {
if (!(execResponse instanceof Promise)) {
span.end();
return execResponse;
}
return execResponse.catch((err) => {
setErrorStatus(span, err);
throw err;
}).finally(() => span.end());
}
function handleCallbackResponse(callback, exec, originalThis, span, args) {
let callbackArgumentIndex = 0;
if (args.length === 2) {
callbackArgumentIndex = 1;
} else if (args.length === 3) {
callbackArgumentIndex = 2;
}
args[callbackArgumentIndex] = (err, response) => {
if (err) {
setErrorStatus(span, err);
}
span.end();
return callback(err, response);
};
return exec.apply(originalThis, args);
}
export { handleCallbackResponse, handlePromiseResponse };
//# sourceMappingURL=utils.js.map