Skip to content

Commit 53b15fe

Browse files
committed
feat: put back some utils extracted from replay for now
1 parent b1b15ec commit 53b15fe

File tree

3 files changed

+16
-51
lines changed

3 files changed

+16
-51
lines changed

packages/browser-utils/src/index.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,7 @@ export { fetch, setTimeout, clearCachedImplementation, getNativeImplementation }
2828

2929
export { addXhrInstrumentationHandler, SENTRY_XHR_DATA_KEY } from './instrument/xhr';
3030

31-
export {
32-
getBodyString,
33-
getFetchRequestArgBody,
34-
serializeFormData,
35-
parseXhrResponseHeaders,
36-
getFetchResponseHeaders,
37-
filterAllowedHeaders,
38-
} from './networkUtils';
31+
export { getBodyString, getFetchRequestArgBody, serializeFormData, parseXhrResponseHeaders } from './networkUtils';
3932

4033
export { resourceTimingToSpanAttributes } from './metrics/resourceTiming';
4134

packages/browser-utils/src/networkUtils.ts

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -80,38 +80,3 @@ export function parseXhrResponseHeaders(xhr: XMLHttpRequest): Record<string, str
8080
return acc;
8181
}, {});
8282
}
83-
84-
/**
85-
* Gets specific headers from a Headers object (Fetch API).
86-
* Extracted from replay internals to be reusable.
87-
*/
88-
export function getFetchResponseHeaders(headers: Headers, allowedHeaders: string[]): Record<string, string> {
89-
const allHeaders: Record<string, string> = {};
90-
91-
allowedHeaders.forEach(header => {
92-
const value = headers.get(header);
93-
if (value) {
94-
allHeaders[header.toLowerCase()] = value;
95-
}
96-
});
97-
98-
return allHeaders;
99-
}
100-
101-
/**
102-
* Filters headers based on an allowed list.
103-
* Extracted from replay internals to be reusable.
104-
*/
105-
export function filterAllowedHeaders(
106-
headers: Record<string, string>,
107-
allowedHeaders: string[],
108-
): Record<string, string> {
109-
return Object.entries(headers).reduce((filteredHeaders: Record<string, string>, [key, value]) => {
110-
const normalizedKey = key.toLowerCase();
111-
// Avoid putting empty strings into the headers
112-
if (allowedHeaders.includes(normalizedKey) && value) {
113-
filteredHeaders[normalizedKey] = value;
114-
}
115-
return filteredHeaders;
116-
}, {});
117-
}

packages/replay-internal/src/coreHandlers/util/fetchUtils.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import type { Breadcrumb, FetchBreadcrumbData } from '@sentry/core';
22
import type { FetchHint, NetworkMetaWarning } from '@sentry-internal/browser-utils';
3-
import {
4-
getBodyString,
5-
getFetchRequestArgBody,
6-
getFetchResponseHeaders,
7-
setTimeout,
8-
} from '@sentry-internal/browser-utils';
3+
import { getBodyString, getFetchRequestArgBody, setTimeout } from '@sentry-internal/browser-utils';
94
import { DEBUG_BUILD } from '../../debug-build';
105
import type {
116
ReplayContainer,
@@ -144,7 +139,7 @@ export async function _getResponseInfo(
144139
return buildSkippedNetworkRequestOrResponse(responseBodySize);
145140
}
146141

147-
const headers = response ? getFetchResponseHeaders(response.headers, networkResponseHeaders) : {};
142+
const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};
148143

149144
if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {
150145
return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);
@@ -220,6 +215,18 @@ async function _parseFetchResponseBody(response: Response): Promise<[string | un
220215
}
221216
}
222217

218+
function getAllHeaders(headers: Headers, allowedHeaders: string[]): Record<string, string> {
219+
const allHeaders: Record<string, string> = {};
220+
221+
allowedHeaders.forEach(header => {
222+
if (headers.get(header)) {
223+
allHeaders[header] = headers.get(header) as string;
224+
}
225+
});
226+
227+
return allHeaders;
228+
}
229+
223230
function getRequestHeaders(fetchArgs: unknown[], allowedHeaders: string[]): Record<string, string> {
224231
if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {
225232
return getHeadersFromOptions(fetchArgs[0] as Request | RequestInit, allowedHeaders);
@@ -247,7 +254,7 @@ function getHeadersFromOptions(
247254
}
248255

249256
if (headers instanceof Headers) {
250-
return getFetchResponseHeaders(headers, allowedHeaders);
257+
return getAllHeaders(headers, allowedHeaders);
251258
}
252259

253260
// We do not support this, as it is not really documented (anymore?)

0 commit comments

Comments
 (0)