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

Function fetch4

out/cli.cjs:6946–7148  ·  view source on GitHub ↗
(url2, opts)

Source from the content-addressed store, hash-verified

6944 return orig === dest;
6945 };
6946 function fetch4(url2, opts) {
6947 if (!fetch4.Promise) {
6948 throw new Error("native promise missing, set fetch.Promise to your favorite alternative");
6949 }
6950 Body.Promise = fetch4.Promise;
6951 return new fetch4.Promise(function(resolve, reject) {
6952 const request3 = new Request6(url2, opts);
6953 const options = getNodeRequestOptions(request3);
6954 const send = (options.protocol === "https:" ? https3 : http4).request;
6955 const signal = request3.signal;
6956 let response = null;
6957 const abort = function abort2() {
6958 let error = new AbortError2("The user aborted a request.");
6959 reject(error);
6960 if (request3.body && request3.body instanceof Stream3.Readable) {
6961 destroyStream(request3.body, error);
6962 }
6963 if (!response || !response.body) return;
6964 response.body.emit("error", error);
6965 };
6966 if (signal && signal.aborted) {
6967 abort();
6968 return;
6969 }
6970 const abortAndFinalize = function abortAndFinalize2() {
6971 abort();
6972 finalize();
6973 };
6974 const req = send(options);
6975 let reqTimeout;
6976 if (signal) {
6977 signal.addEventListener("abort", abortAndFinalize);
6978 }
6979 function finalize() {
6980 req.abort();
6981 if (signal) signal.removeEventListener("abort", abortAndFinalize);
6982 clearTimeout(reqTimeout);
6983 }
6984 if (request3.timeout) {
6985 req.once("socket", function(socket) {
6986 reqTimeout = setTimeout(function() {
6987 reject(new FetchError(`network timeout at: ${request3.url}`, "request-timeout"));
6988 finalize();
6989 }, request3.timeout);
6990 });
6991 }
6992 req.on("error", function(err) {
6993 reject(new FetchError(`request to ${request3.url} failed, reason: ${err.message}`, "system", err));
6994 if (response && response.body) {
6995 destroyStream(response.body, err);
6996 }
6997 finalize();
6998 });
6999 fixResponseChunkedTransferBadEnding(req, function(err) {
7000 if (signal && signal.aborted) {
7001 return;
7002 }
7003 if (response && response.body) {

Callers

nothing calls this directly

Calls 15

getNodeRequestOptionsFunction · 0.85
abortFunction · 0.85
setTimeoutFunction · 0.85
rejectFunction · 0.85
finalizeFunction · 0.85
destroyStreamFunction · 0.85
clearTimeoutFunction · 0.85
createHeadersLenientFunction · 0.85
isDomainOrSubdomainFunction · 0.85
isSameProtocolFunction · 0.85
getTotalBytesFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…