MCPcopy Index your code
hub / github.com/nodejs/node / fetch2

Function fetch2

deps/undici/undici.js:13482–13550  ·  view source on GitHub ↗
(input, init = void 0)

Source from the content-addressed store, hash-verified

13480 }
13481 __name(handleFetchDone, "handleFetchDone");
13482 function fetch2(input, init = void 0) {
13483 webidl.argumentLengthCheck(arguments, 1, "globalThis.fetch");
13484 let p = Promise.withResolvers();
13485 let requestObject;
13486 try {
13487 requestObject = new Request(input, init);
13488 } catch (e) {
13489 p.reject(e);
13490 return p.promise;
13491 }
13492 const request = getRequestState(requestObject);
13493 if (requestObject.signal.aborted) {
13494 abortFetch(p, request, null, requestObject.signal.reason, null);
13495 return p.promise;
13496 }
13497 const globalObject = request.client.globalObject;
13498 if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") {
13499 request.serviceWorkers = "none";
13500 }
13501 let responseObject = null;
13502 let locallyAborted = false;
13503 let controller = null;
13504 const removeAbortListener = addAbortListener(
13505 requestObject.signal,
13506 () => {
13507 locallyAborted = true;
13508 assert(controller != null);
13509 controller.abort(requestObject.signal.reason);
13510 const realResponse = responseObject?.deref();
13511 abortFetch(p, request, realResponse, requestObject.signal.reason, controller.controller);
13512 }
13513 );
13514 const cleanupAbortListeners = /* @__PURE__ */ __name(() => {
13515 removeAbortListener();
13516 removeRequestAbortListener(requestObject);
13517 }, "cleanupAbortListeners");
13518 const processResponse = /* @__PURE__ */ __name((response) => {
13519 if (locallyAborted) {
13520 return;
13521 }
13522 if (response.aborted) {
13523 abortFetch(p, request, responseObject, controller.serializedAbortReason, controller.controller);
13524 cleanupAbortListeners();
13525 return;
13526 }
13527 if (response.type === "error") {
13528 p.reject(new TypeError("fetch failed", { cause: response.error }));
13529 cleanupAbortListeners();
13530 return;
13531 }
13532 responseObject = new WeakRef(fromInnerResponse(response, "immutable"));
13533 p.resolve(responseObject.deref());
13534 p = null;
13535 }, "processResponse");
13536 controller = fetching({
13537 request,
13538 processResponseEndOfBody: /* @__PURE__ */ __name((response) => {
13539 handleFetchDone(response);

Callers

nothing calls this directly

Calls 12

__nameFunction · 0.85
cleanupAbortListenersFunction · 0.85
argumentLengthCheckMethod · 0.80
rejectMethod · 0.80
abortFetchFunction · 0.70
addAbortListenerFunction · 0.70
fromInnerResponseFunction · 0.70
fetchingFunction · 0.70
handleFetchDoneFunction · 0.70
abortMethod · 0.65
assertFunction · 0.50
resolveMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…