MCPcopy Index your code
hub / github.com/nodejs/node / parseVaryHeader

Function parseVaryHeader

deps/undici/src/lib/util/cache.js:286–304  ·  view source on GitHub ↗

* @param {string | string[]} varyHeader Vary header from the server * @param {Record } headers Request headers * @returns {Record }

(varyHeader, headers)

Source from the content-addressed store, hash-verified

284 * @returns {Record<string, string | string[]>}
285 */
286function parseVaryHeader (varyHeader, headers) {
287 if (typeof varyHeader === 'string' && varyHeader.includes('*')) {
288 return headers
289 }
290
291 const output = /** @type {Record<string, string | string[] | null>} */ ({})
292
293 const varyingHeaders = typeof varyHeader === 'string'
294 ? varyHeader.split(',')
295 : varyHeader
296
297 for (const header of varyingHeaders) {
298 const trimmedHeader = header.trim().toLowerCase()
299
300 output[trimmedHeader] = headers[trimmedHeader] ?? null
301 }
302
303 return output
304}
305
306/**
307 * Note: this deviates from the spec a little. Empty etags ("", W/"") are valid,

Callers 1

onResponseStartMethod · 0.85

Calls 2

includesMethod · 0.80
splitMethod · 0.45

Tested by

no test coverage detected