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

Function prepareRequestHeadersObject

lib/internal/http2/util.js:711–749  ·  view source on GitHub ↗

* Takes a request headers object, validates it and sets defaults, and returns * the resulting headers in object format and NgHeaders string list format. * @returns {object}

(headers, session)

Source from the content-addressed store, hash-verified

709 * @returns {object}
710 */
711function prepareRequestHeadersObject(headers, session) {
712 const headersObject = ObjectAssign({ __proto__: null }, headers);
713
714 if (headersObject[HTTP2_HEADER_METHOD] === undefined) {
715 headersObject[HTTP2_HEADER_METHOD] = HTTP2_METHOD_GET;
716 }
717
718 const connect = headersObject[HTTP2_HEADER_METHOD] === HTTP2_METHOD_CONNECT;
719
720 if (!connect || headersObject[HTTP2_HEADER_PROTOCOL] !== undefined) {
721 if (getAuthority(headersObject) === undefined)
722 headersObject[HTTP2_HEADER_AUTHORITY] = session[kAuthority];
723 if (headersObject[HTTP2_HEADER_SCHEME] === undefined)
724 headersObject[HTTP2_HEADER_SCHEME] = session[kProtocol].slice(0, -1);
725 if (headersObject[HTTP2_HEADER_PATH] === undefined)
726 headersObject[HTTP2_HEADER_PATH] = '/';
727 } else {
728 if (headersObject[HTTP2_HEADER_AUTHORITY] === undefined)
729 throw new ERR_HTTP2_CONNECT_AUTHORITY();
730 if (headersObject[HTTP2_HEADER_SCHEME] !== undefined)
731 throw new ERR_HTTP2_CONNECT_SCHEME();
732 if (headersObject[HTTP2_HEADER_PATH] !== undefined)
733 throw new ERR_HTTP2_CONNECT_PATH();
734 }
735
736 const headersList = buildNgHeaderString(
737 headersObject,
738 assertValidPseudoHeader,
739 session[kStrictSingleValueFields],
740 );
741
742 return {
743 headersObject,
744 headersList,
745 scheme: headersObject[HTTP2_HEADER_SCHEME],
746 authority: getAuthority(headersObject),
747 method: headersObject[HTTP2_HEADER_METHOD],
748 };
749}
750
751const emptyArray = [];
752const kNeverIndexFlag = StringFromCharCode(NGHTTP2_NV_FLAG_NO_INDEX);

Callers 1

requestMethod · 0.85

Calls 4

ObjectAssignFunction · 0.85
getAuthorityFunction · 0.85
buildNgHeaderStringFunction · 0.85
sliceMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…