MCPcopy
hub / github.com/di-sukharev/opencommit / writeH2

Function writeH2

out/cli.cjs:54930–55108  ·  view source on GitHub ↗
(client, session, request3)

Source from the content-addressed store, hash-verified

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) {

Callers 1

writeFunction · 0.85

Calls 14

errorRequestFunction · 0.85
shouldSendContentLengthFunction · 0.85
writeBodyH2Function · 0.85
trimMethod · 0.80
onConnectMethod · 0.45
requestMethod · 0.45
onUpgradeMethod · 0.45
onceMethod · 0.45
readMethod · 0.45
onHeadersMethod · 0.45
onCompleteMethod · 0.45
onMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…