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

Function schemeFetch

out/cli.cjs:60167–60229  ·  view source on GitHub ↗
(fetchParams)

Source from the content-addressed store, hash-verified

60165 response.body = safelyExtractBody(bytes)[0];
60166 fetchFinale(fetchParams, response);
60167 };
60168 await fullyReadBody(response.body, processBody, processBodyError);
60169 } else {
60170 fetchFinale(fetchParams, response);
60171 }
60172 }
60173 function schemeFetch(fetchParams) {
60174 if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {
60175 return Promise.resolve(makeAppropriateNetworkError(fetchParams));
60176 }
60177 const { request: request3 } = fetchParams;
60178 const { protocol: scheme } = requestCurrentURL(request3);
60179 switch (scheme) {
60180 case "about:": {
60181 return Promise.resolve(makeNetworkError("about scheme is not supported"));
60182 }
60183 case "blob:": {
60184 if (!resolveObjectURL) {
60185 resolveObjectURL = require("buffer").resolveObjectURL;
60186 }
60187 const blobURLEntry = requestCurrentURL(request3);
60188 if (blobURLEntry.search.length !== 0) {
60189 return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));
60190 }
60191 const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString());
60192 if (request3.method !== "GET" || !isBlobLike3(blobURLEntryObject)) {
60193 return Promise.resolve(makeNetworkError("invalid method"));
60194 }
60195 const bodyWithType = safelyExtractBody(blobURLEntryObject);
60196 const body = bodyWithType[0];
60197 const length = isomorphicEncode(`${body.length}`);
60198 const type2 = bodyWithType[1] ?? "";
60199 const response = makeResponse({
60200 statusText: "OK",
60201 headersList: [
60202 ["content-length", { name: "Content-Length", value: length }],
60203 ["content-type", { name: "Content-Type", value: type2 }]
60204 ]
60205 });
60206 response.body = body;
60207 return Promise.resolve(response);
60208 }
60209 case "data:": {
60210 const currentURL = requestCurrentURL(request3);
60211 const dataURLStruct = dataURLProcessor(currentURL);
60212 if (dataURLStruct === "failure") {
60213 return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
60214 }
60215 const mimeType = serializeAMimeType(dataURLStruct.mimeType);
60216 return Promise.resolve(makeResponse({
60217 statusText: "OK",
60218 headersList: [
60219 ["content-type", { name: "Content-Type", value: mimeType }]
60220 ],
60221 body: safelyExtractBody(dataURLStruct.body)[0]
60222 }));
60223 }
60224 case "file:": {

Callers 1

mainFetchFunction · 0.85

Calls 13

isCancelledFunction · 0.85
requestCurrentURLFunction · 0.85
makeNetworkErrorFunction · 0.85
isBlobLike3Function · 0.85
safelyExtractBodyFunction · 0.85
isomorphicEncodeFunction · 0.85
makeResponseFunction · 0.85
dataURLProcessorFunction · 0.85
serializeAMimeTypeFunction · 0.85
httpFetchFunction · 0.85
toStringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…