Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
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;
|
|
}
|
|
|
|
// Appears this is the recommended way to check for Node.js SystemError
|
|
// https://github.com/nodejs/node/issues/46869
|
|
return util.getSystemErrorMap().has(error.errno);
|
|
}
|
|
|
|
/**
|
|
* Captures context for Node.js SystemError errors.
|
|
*/
|
|
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.getOptions().sendDefaultPii && 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
|