UNPKG

@sentry/remix

Version:
49 lines (46 loc) • 1.55 kB
import { getTraceData, debug } from '@sentry/core'; import { isNodeEnv } from '@sentry/core/server'; import { DEBUG_BUILD } from '../utils/debug-build.js'; import { isCloudflareEnv } from '../utils/utils.js'; function generateSentryServerTimingHeader() { if (!isNodeEnv() && !isCloudflareEnv()) { return null; } try { const traceData = 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) { DEBUG_BUILD && debug.warn("Failed to generate Server-Timing header", e); return null; } } function injectServerTimingHeaderValue(response, serverTimingValue) { try { const headers = new Headers(response.headers); const existing = headers.get("Server-Timing"); 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) { DEBUG_BUILD && debug.warn("Failed to add Server-Timing header to response", e); return response; } } export { generateSentryServerTimingHeader, injectServerTimingHeaderValue }; //# sourceMappingURL=serverTimingTracePropagation.js.map