Files
klz-cables.com/.pnpm-store/v10/files/5f/989ebc4cc1d2f47b237ffefd09e84857a95465de73c018863e8fb3205335dcb0c1ee4d7b6150739442f9ccb2640ca914fc0b15e24f7f538d3d323de734ae99
Marc Mintel 5397309103
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
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

101 lines
2.7 KiB
Plaintext

Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const diagnosticsChannel = require('node:diagnostics_channel');
const core = require('@sentry/core');
const outgoingFetchRequest = require('../../utils/outgoingFetchRequest.js');
const INTEGRATION_NAME = 'NodeFetch';
const _nativeNodeFetchIntegration = ((options = {}) => {
const _options = {
breadcrumbs: options.breadcrumbs ?? true,
ignoreOutgoingRequests: options.ignoreOutgoingRequests,
};
const propagationDecisionMap = new core.LRUMap(100);
const ignoreOutgoingRequestsMap = new WeakMap();
return {
name: INTEGRATION_NAME,
setupOnce() {
const onRequestCreated = ((_data) => {
const data = _data ;
onUndiciRequestCreated(data.request, _options, propagationDecisionMap, ignoreOutgoingRequestsMap);
}) ;
const onResponseHeaders = ((_data) => {
const data = _data ;
onUndiciResponseHeaders(data.request, data.response, _options, ignoreOutgoingRequestsMap);
}) ;
diagnosticsChannel.subscribe('undici:request:create', onRequestCreated);
diagnosticsChannel.subscribe('undici:request:headers', onResponseHeaders);
},
};
}) ;
/**
* This integration handles outgoing fetch (undici) requests in light mode (without OpenTelemetry).
* It propagates trace headers and creates breadcrumbs for responses.
*/
const nativeNodeFetchIntegration = _nativeNodeFetchIntegration
;
function onUndiciRequestCreated(
request,
options,
propagationDecisionMap,
ignoreOutgoingRequestsMap,
) {
const shouldIgnore = shouldIgnoreRequest(request, options);
ignoreOutgoingRequestsMap.set(request, shouldIgnore);
if (shouldIgnore) {
return;
}
outgoingFetchRequest.addTracePropagationHeadersToFetchRequest(request, propagationDecisionMap);
}
function onUndiciResponseHeaders(
request,
response,
options,
ignoreOutgoingRequestsMap,
) {
if (!options.breadcrumbs) {
return;
}
const shouldIgnore = ignoreOutgoingRequestsMap.get(request);
if (shouldIgnore) {
return;
}
outgoingFetchRequest.addFetchRequestBreadcrumb(request, response);
}
/** Check if the given outgoing request should be ignored. */
function shouldIgnoreRequest(
request,
options,
) {
// Check if tracing is suppressed (e.g. for Sentry's own transport requests)
if (core.getCurrentScope().getScopeData().sdkProcessingMetadata.__SENTRY_SUPPRESS_TRACING__) {
return true;
}
const { ignoreOutgoingRequests } = options;
if (!ignoreOutgoingRequests) {
return false;
}
const url = outgoingFetchRequest.getAbsoluteUrl(request.origin, request.path);
return ignoreOutgoingRequests(url);
}
exports.nativeNodeFetchIntegration = nativeNodeFetchIntegration;
//# sourceMappingURL=nativeNodeFetchIntegration.js.map