@@ -43,7 +43,11 @@ import { DEBUG_BUILD } from '../utils/debug-build';
4343import { createRoutes , getTransactionName } from '../utils/utils' ;
4444import { extractData , isResponse , json } from '../utils/vendor/response' ;
4545import { captureRemixServerException , errorHandleDataFunction } from './errors' ;
46- import { generateSentryServerTimingHeader , isCloudflareEnv } from './serverTimingTracePropagation' ;
46+ import {
47+ generateSentryServerTimingHeader ,
48+ injectServerTimingHeaderValue ,
49+ isCloudflareEnv ,
50+ } from './serverTimingTracePropagation' ;
4751
4852type AppData = unknown ;
4953type RemixRequest = Parameters < RequestHandler > [ 0 ] ;
@@ -60,37 +64,6 @@ function isCatchResponse(response: Response): boolean {
6064 return response . headers . get ( 'X-Remix-Catch' ) != null ;
6165}
6266
63- /**
64- * Injects Server-Timing header with Sentry trace context into a Response.
65- */
66- function injectServerTimingHeader ( response : Response , precomputedHeader ?: string | null ) : Response {
67- const serverTiming = precomputedHeader !== undefined ? precomputedHeader : generateSentryServerTimingHeader ( ) ;
68-
69- if ( ! serverTiming ) {
70- return response ;
71- }
72-
73- if ( response . bodyUsed ) {
74- DEBUG_BUILD && debug . warn ( 'Cannot inject Server-Timing header: response body already consumed' ) ;
75- return response ;
76- }
77-
78- try {
79- const headers = new Headers ( response . headers ) ;
80- const existingTiming = headers . get ( 'Server-Timing' ) ;
81- headers . set ( 'Server-Timing' , existingTiming ? `${ existingTiming } , ${ serverTiming } ` : serverTiming ) ;
82-
83- return new Response ( response . body , {
84- status : response . status ,
85- statusText : response . statusText ,
86- headers,
87- } ) ;
88- } catch ( e ) {
89- DEBUG_BUILD && debug . warn ( 'Failed to inject Server-Timing header into response' , e ) ;
90- return response ;
91- }
92- }
93-
9467/**
9568 * Sentry utility to be used in place of `handleError` function of Remix v2
9669 * Remix Docs: https://remix.run/docs/en/main/file-conventions/entry.server#handleerror
@@ -208,7 +181,7 @@ function makeWrappedDocumentRequestFunction(instrumentTracing?: boolean) {
208181 }
209182
210183 if ( serverTimingHeader && response instanceof Response ) {
211- return injectServerTimingHeader ( response , serverTimingHeader ) ;
184+ return injectServerTimingHeaderValue ( response , serverTimingHeader ) ;
212185 }
213186
214187 return response ;
0 commit comments