MCPcopy Create free account
hub / github.com/angular/dev-infra / schemeFetch

Function schemeFetch

github-actions/bazel/configure-remote/configure-remote.js:14181–14271  ·  view source on GitHub ↗
(fetchParams)

Source from the content-addressed store, hash-verified

14179 }
14180 if (request.mode === "no-cors") {
14181 if (request.redirect !== "follow") {
14182 return makeNetworkError(
14183 'redirect mode cannot be "follow" for "no-cors" request'
14184 );
14185 }
14186 request.responseTainting = "opaque";
14187 return yield schemeFetch(fetchParams);
14188 }
14189 if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {
14190 return makeNetworkError("URL scheme must be a HTTP(S) scheme");
14191 }
14192 request.responseTainting = "cors";
14193 return yield httpFetch(fetchParams);
14194 }))();
14195 }
14196 if (recursive) {
14197 return response;
14198 }
14199 if (response.status !== 0 && !response.internalResponse) {
14200 if (request.responseTainting === "cors") {
14201 }
14202 if (request.responseTainting === "basic") {
14203 response = filterResponse(response, "basic");
14204 } else if (request.responseTainting === "cors") {
14205 response = filterResponse(response, "cors");
14206 } else if (request.responseTainting === "opaque") {
14207 response = filterResponse(response, "opaque");
14208 } else {
14209 assert(false);
14210 }
14211 }
14212 let internalResponse = response.status === 0 ? response : response.internalResponse;
14213 if (internalResponse.urlList.length === 0) {
14214 internalResponse.urlList.push(...request.urlList);
14215 }
14216 if (!request.timingAllowFailed) {
14217 response.timingAllowPassed = true;
14218 }
14219 if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range", true)) {
14220 response = internalResponse = makeNetworkError();
14221 }
14222 if (response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
14223 internalResponse.body = null;
14224 fetchParams.controller.dump = true;
14225 }
14226 if (request.integrity) {
14227 const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason));
14228 if (request.responseTainting === "opaque" || response.body == null) {
14229 processBodyError(response.error);
14230 return;
14231 }
14232 const processBody = (bytes) => {
14233 if (!bytesMatch(bytes, request.integrity)) {
14234 processBodyError("integrity mismatch");
14235 return;
14236 }
14237 response.body = safelyExtractBody(bytes)[0];
14238 fetchFinale(fetchParams, response);

Callers 1

mainFetchFunction · 0.70

Calls 15

isCancelledFunction · 0.70
requestCurrentURLFunction · 0.70
makeNetworkErrorFunction · 0.70
isBlobLikeFunction · 0.70
makeResponseFunction · 0.70
isomorphicEncodeFunction · 0.70
extractBodyFunction · 0.70
simpleRangeHeaderValueFunction · 0.70
buildContentRangeFunction · 0.70
dataURLProcessorFunction · 0.70
serializeAMimeTypeFunction · 0.70

Tested by

no test coverage detected