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

Function appendHeader

deps/undici/src/lib/web/fetch/headers.js:88–126  ·  view source on GitHub ↗

* @see https://fetch.spec.whatwg.org/#concept-headers-append * @param {Headers} headers * @param {string} name * @param {string} value

(headers, name, value)

Source from the content-addressed store, hash-verified

86 * @param {string} value
87 */
88function appendHeader (headers, name, value) {
89 // 1. Normalize value.
90 value = headerValueNormalize(value)
91
92 // 2. If name is not a header name or value is not a
93 // header value, then throw a TypeError.
94 if (!isValidHeaderName(name)) {
95 throw webidl.errors.invalidArgument({
96 prefix: 'Headers.append',
97 value: name,
98 type: 'header name'
99 })
100 } else if (!isValidHeaderValue(value)) {
101 throw webidl.errors.invalidArgument({
102 prefix: 'Headers.append',
103 value,
104 type: 'header value'
105 })
106 }
107
108 // 3. If headers’s guard is "immutable", then throw a TypeError.
109 // 4. Otherwise, if headers’s guard is "request" and name is a
110 // forbidden header name, return.
111 // 5. Otherwise, if headers’s guard is "request-no-cors":
112 // TODO
113 // Note: undici does not implement forbidden header names
114 if (getHeadersGuard(headers) === 'immutable') {
115 throw new TypeError('immutable')
116 }
117
118 // 6. Otherwise, if headers’s guard is "response" and name is a
119 // forbidden response-header name, return.
120
121 // 7. Append (name, value) to headers’s header list.
122 return getHeadersList(headers).append(name, value, false)
123
124 // 8. If headers’s guard is "request-no-cors", then remove
125 // privileged no-CORS request headers from headers
126}
127
128// https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine
129/**

Callers 2

fillFunction · 0.70
appendMethod · 0.70

Calls 4

invalidArgumentMethod · 0.80
headerValueNormalizeFunction · 0.70
isValidHeaderValueFunction · 0.70
appendMethod · 0.45

Tested by

no test coverage detected