UNPKG

@sentry/remix

Version:
64 lines (50 loc) 1.85 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const core = require('@sentry/core'); const debugBuild = require('../utils/debug-build.js'); const utils = require('../utils/utils.js'); /** Generate a Server-Timing header value containing Sentry trace context. */ function generateSentryServerTimingHeader() { if (!core.isNodeEnv() && !utils.isCloudflareEnv()) { return null; } try { const traceData = core.getTraceData(); const sentryTrace = traceData['sentry-trace']; const baggage = traceData.baggage; if (!sentryTrace) { return null; } const parts = []; parts.push(`sentry-trace;desc="${sentryTrace}"`); if (baggage) { parts.push(`baggage;desc="${baggage}"`); } return parts.join(', '); } catch (e) { debugBuild.DEBUG_BUILD && core.debug.warn('Failed to generate Server-Timing header', e); return null; } } /** @internal */ function injectServerTimingHeaderValue(response, serverTimingValue) { try { const headers = new Headers(response.headers); const existing = headers.get('Server-Timing'); // Avoid duplicate entries when manually injected in entry.server.tsx if (existing?.includes('sentry-trace')) { return response; } headers.set('Server-Timing', existing ? `${existing}, ${serverTimingValue}` : serverTimingValue); return new Response(response.body, { status: response.status, statusText: response.statusText, headers, }); } catch (e) { debugBuild.DEBUG_BUILD && core.debug.warn('Failed to add Server-Timing header to response', e); return response; } } exports.generateSentryServerTimingHeader = generateSentryServerTimingHeader; exports.injectServerTimingHeaderValue = injectServerTimingHeaderValue; //# sourceMappingURL=serverTimingTracePropagation.js.map