(client, session, request3)
| 54928 | writeStream({ body, client, request: request3, socket, contentLength, header, expectsPayload }); |
| 54929 | } else if (util4.isIterable(body)) { |
| 54930 | writeIterable({ body, client, request: request3, socket, contentLength, header, expectsPayload }); |
| 54931 | } else { |
| 54932 | assert2(false); |
| 54933 | } |
| 54934 | return true; |
| 54935 | } |
| 54936 | function writeH2(client, session, request3) { |
| 54937 | const { body, method, path: path5, host, upgrade, expectContinue, signal, headers: reqHeaders } = request3; |
| 54938 | let headers; |
| 54939 | if (typeof reqHeaders === "string") headers = Request6[kHTTP2CopyHeaders](reqHeaders.trim()); |
| 54940 | else headers = reqHeaders; |
| 54941 | if (upgrade) { |
| 54942 | errorRequest(client, request3, new Error("Upgrade not supported for H2")); |
| 54943 | return false; |
| 54944 | } |
| 54945 | try { |
| 54946 | request3.onConnect((err) => { |
| 54947 | if (request3.aborted || request3.completed) { |
| 54948 | return; |
| 54949 | } |
| 54950 | errorRequest(client, request3, err || new RequestAbortedError()); |
| 54951 | }); |
| 54952 | } catch (err) { |
| 54953 | errorRequest(client, request3, err); |
| 54954 | } |
| 54955 | if (request3.aborted) { |
| 54956 | return false; |
| 54957 | } |
| 54958 | let stream4; |
| 54959 | const h2State = client[kHTTP2SessionState]; |
| 54960 | headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]; |
| 54961 | headers[HTTP2_HEADER_METHOD] = method; |
| 54962 | if (method === "CONNECT") { |
| 54963 | session.ref(); |
| 54964 | stream4 = session.request(headers, { endStream: false, signal }); |
| 54965 | if (stream4.id && !stream4.pending) { |
| 54966 | request3.onUpgrade(null, null, stream4); |
| 54967 | ++h2State.openStreams; |
| 54968 | } else { |
| 54969 | stream4.once("ready", () => { |
| 54970 | request3.onUpgrade(null, null, stream4); |
| 54971 | ++h2State.openStreams; |
| 54972 | }); |
| 54973 | } |
| 54974 | stream4.once("close", () => { |
| 54975 | h2State.openStreams -= 1; |
| 54976 | if (h2State.openStreams === 0) session.unref(); |
| 54977 | }); |
| 54978 | return true; |
| 54979 | } |
| 54980 | headers[HTTP2_HEADER_PATH] = path5; |
| 54981 | headers[HTTP2_HEADER_SCHEME] = "https"; |
| 54982 | const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; |
| 54983 | if (body && typeof body.read === "function") { |
| 54984 | body.read(0); |
| 54985 | } |
| 54986 | let contentLength = util4.bodyLength(body); |
| 54987 | if (contentLength == null) { |
no test coverage detected
searching dependent graphs…