(url2, opts)
| 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) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…