@sentry/node
Version:
Sentry Node SDK using OpenTelemetry for performance instrumentation
55 lines (51 loc) • 1.68 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const util = require('node:util');
const core = require('@sentry/core');
const INTEGRATION_NAME = "NodeSystemError";
function isSystemError(error) {
if (!(error instanceof Error)) {
return false;
}
if (!("errno" in error) || typeof error.errno !== "number") {
return false;
}
if (typeof util.getSystemErrorMap !== "function") {
return false;
}
return util.getSystemErrorMap().has(error.errno);
}
const systemErrorIntegration = core.defineIntegration((options = {}) => {
return {
name: INTEGRATION_NAME,
processEvent: (event, hint, client) => {
if (!isSystemError(hint.originalException)) {
return event;
}
const error = hint.originalException;
const errorContext = {
...error
};
if (!client.getDataCollectionOptions().userInfo && options.includePaths !== true) {
delete errorContext.path;
delete errorContext.dest;
}
event.contexts = {
...event.contexts,
node_system_error: errorContext
};
for (const exception of event.exception?.values || []) {
if (exception.value) {
if (error.path && exception.value.includes(error.path)) {
exception.value = exception.value.replace(`'${error.path}'`, "").trim();
}
if (error.dest && exception.value.includes(error.dest)) {
exception.value = exception.value.replace(`'${error.dest}'`, "").trim();
}
}
}
return event;
}
};
});
exports.systemErrorIntegration = systemErrorIntegration;
//# sourceMappingURL=systemError.js.map