MCPcopy Create free account
hub / github.com/nodejs/node / responseHeadersArrayToDictionary

Function responseHeadersArrayToDictionary

lib/internal/inspector/network_undici.js:39–65  ·  view source on GitHub ↗
(headers)

Source from the content-addressed store, hash-verified

37
38// Convert an undici response headers array to a plain object (Map<string, string>)
39function responseHeadersArrayToDictionary(headers) {
40 const dict = {};
41 let charset;
42 let mimeType;
43 for (let idx = 0; idx < headers.length; idx += 2) {
44 const key = `${headers[idx]}`;
45 const lowerCasedKey = StringPrototypeToLowerCase(key);
46 const value = `${headers[idx + 1]}`;
47 const prevValue = dict[key];
48
49 if (lowerCasedKey === 'content-type') {
50 const result = sniffMimeType(value);
51 charset = result.charset;
52 mimeType = result.mimeType;
53 }
54
55 if (typeof prevValue === 'string') {
56 // ChromeDevTools frontend treats 'set-cookie' as a special case
57 // https://github.com/ChromeDevTools/devtools-frontend/blob/4275917f84266ef40613db3c1784a25f902ea74e/front_end/core/sdk/NetworkRequest.ts#L1368
58 if (lowerCasedKey === 'set-cookie') dict[key] = `${prevValue}\n${value}`;
59 else dict[key] = `${prevValue}, ${value}`;
60 } else {
61 dict[key] = value;
62 }
63 }
64 return [dict, charset, mimeType];
65};
66
67/**
68 * When a client request starts, emit Network.requestWillBeSent event.

Callers 1

onClientResponseHeadersFunction · 0.85

Calls 1

sniffMimeTypeFunction · 0.85

Tested by

no test coverage detected