MCPcopy Create free account
hub / github.com/angular/dev-infra / connectH2

Function connectH2

github-actions/saucelabs/set-saucelabs-env.js:7109–7193  ·  view source on GitHub ↗
(client, socket)

Source from the content-addressed store, hash-verified

7107 HTTP2_HEADER_CONTENT_LENGTH,
7108 HTTP2_HEADER_EXPECT,
7109 HTTP2_HEADER_STATUS
7110 }
7111 } = http2;
7112 function parseH2Headers(headers) {
7113 const result = [];
7114 for (const [name, value] of Object.entries(headers)) {
7115 if (Array.isArray(value)) {
7116 for (const subvalue of value) {
7117 result.push(Buffer.from(name), Buffer.from(subvalue));
7118 }
7119 } else {
7120 result.push(Buffer.from(name), Buffer.from(value));
7121 }
7122 }
7123 return result;
7124 }
7125 function connectH2(client, socket) {
7126 return __async(this, null, function* () {
7127 client[kSocket] = socket;
7128 if (!h2ExperimentalWarned) {
7129 h2ExperimentalWarned = true;
7130 process.emitWarning("H2 support is experimental, expect them to change at any time.", {
7131 code: "UNDICI-H2"
7132 });
7133 }
7134 const session = http2.connect(client[kUrl], {
7135 createConnection: () => socket,
7136 peerMaxConcurrentStreams: client[kMaxConcurrentStreams]
7137 });
7138 session[kOpenStreams] = 0;
7139 session[kClient] = client;
7140 session[kSocket] = socket;
7141 util.addListener(session, "error", onHttp2SessionError);
7142 util.addListener(session, "frameError", onHttp2FrameError);
7143 util.addListener(session, "end", onHttp2SessionEnd);
7144 util.addListener(session, "goaway", onHTTP2GoAway);
7145 util.addListener(session, "close", function() {
7146 const { [kClient]: client2 } = this;
7147 const { [kSocket]: socket2 } = client2;
7148 const err = this[kSocket][kError] || this[kError] || new SocketError("closed", util.getSocketInfo(socket2));
7149 client2[kHTTP2Session] = null;
7150 if (client2.destroyed) {
7151 assert(client2[kPending] === 0);
7152 const requests = client2[kQueue].splice(client2[kRunningIdx]);
7153 for (let i = 0; i < requests.length; i++) {
7154 const request = requests[i];
7155 util.errorRequest(client2, request, err);
7156 }
7157 }
7158 });
7159 session.unref();
7160 client[kHTTP2Session] = session;
7161 socket[kHTTP2Session] = session;
7162 util.addListener(socket, "error", function(err) {
7163 assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
7164 this[kError] = err;
7165 this[kClient][kOnError](err);
7166 });

Callers 1

connectFunction · 0.70

Calls 4

__asyncFunction · 0.70
addListenerMethod · 0.45
destroyMethod · 0.45
onMethod · 0.45

Tested by

no test coverage detected