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

Function fetchFinale

deps/undici/undici.js:13877–13932  ·  view source on GitHub ↗
(fetchParams, response)

Source from the content-addressed store, hash-verified

13875 }
13876 __name(finalizeResponse, "finalizeResponse");
13877 function fetchFinale(fetchParams, response) {
13878 let timingInfo = fetchParams.timingInfo;
13879 const processResponseEndOfBody = /* @__PURE__ */ __name(() => {
13880 const unsafeEndTime = Date.now();
13881 if (fetchParams.request.destination === "document") {
13882 fetchParams.controller.fullTimingInfo = timingInfo;
13883 }
13884 fetchParams.controller.reportTimingSteps = () => {
13885 if (!urlIsHttpHttpsScheme(fetchParams.request.url)) {
13886 return;
13887 }
13888 timingInfo.endTime = unsafeEndTime;
13889 let cacheState = response.cacheState;
13890 const bodyInfo = response.bodyInfo;
13891 if (!response.timingAllowPassed) {
13892 timingInfo = createOpaqueTimingInfo(timingInfo);
13893 cacheState = "";
13894 }
13895 let responseStatus = 0;
13896 if (fetchParams.request.mode !== "navigate" || !response.hasCrossOriginRedirects) {
13897 responseStatus = response.status;
13898 const mimeType = extractMimeType(response.headersList);
13899 if (mimeType !== "failure") {
13900 bodyInfo.contentType = minimizeSupportedMimeType(mimeType);
13901 }
13902 }
13903 if (fetchParams.request.initiatorType != null) {
13904 markResourceTiming(timingInfo, fetchParams.request.url.href, fetchParams.request.initiatorType, globalThis, cacheState, bodyInfo, responseStatus);
13905 }
13906 };
13907 const processResponseEndOfBodyTask = /* @__PURE__ */ __name(() => {
13908 fetchParams.request.done = true;
13909 if (fetchParams.processResponseEndOfBody != null) {
13910 queueMicrotask(() => fetchParams.processResponseEndOfBody(response));
13911 }
13912 if (fetchParams.request.initiatorType != null) {
13913 fetchParams.controller.reportTimingSteps();
13914 }
13915 }, "processResponseEndOfBodyTask");
13916 queueMicrotask(() => processResponseEndOfBodyTask());
13917 }, "processResponseEndOfBody");
13918 if (fetchParams.processResponse != null) {
13919 queueMicrotask(() => {
13920 fetchParams.processResponse(response);
13921 fetchParams.processResponse = null;
13922 });
13923 }
13924 const internalResponse = response.type === "error" ? response : response.internalResponse ?? response;
13925 if (internalResponse.body == null) {
13926 processResponseEndOfBody();
13927 } else {
13928 finished(internalResponse.body.stream, () => {
13929 processResponseEndOfBody();
13930 });
13931 }
13932 }
13933 __name(fetchFinale, "fetchFinale");
13934 async function httpFetch(fetchParams) {

Callers 1

mainFetchFunction · 0.70

Calls 13

__nameFunction · 0.85
markResourceTimingFunction · 0.85
queueMicrotaskFunction · 0.85
processResponseEndOfBodyFunction · 0.85
nowMethod · 0.80
processResponseMethod · 0.80
urlIsHttpHttpsSchemeFunction · 0.70
createOpaqueTimingInfoFunction · 0.70
extractMimeTypeFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…