MCPcopy
hub / github.com/DO-SAY-GO/dn / cacheRequest

Function cacheRequest

src/archivist.js:677–756  ·  view source on GitHub ↗
(pausedRequest)

Source from the content-addressed store, hash-verified

675 }
676
677 async function cacheRequest(pausedRequest) {
678 const {
679 requestId, request, resourceType,
680 frameId,
681 responseStatusCode, responseHeaders, responseErrorReason
682 } = pausedRequest;
683 const isNavigationRequest = resourceType == "Document";
684 const isFont = resourceType == "Font";
685
686 if ( dontCache(request) ) {
687 DEBUG.verboseSlow && console.log("Not caching", request.url);
688 send(`Fetch.continue${requestStage}`, {requestId});
689 return;
690 }
691 const key = serializeRequestKey(request);
692 if ( Mode == 'serve' ) {
693 if ( State.Cache.has(key) ) {
694 let {body, responseCode, responseHeaders} = await getResponseData(State.Cache.get(key));
695 responseCode = responseCode || 200;
696 //DEBUG.verboseSlow && console.log("Fulfilling", key, responseCode, responseHeaders, body.slice(0,140));
697 DEBUG.verboseSlow && console.log("Fulfilling", key, responseCode, body.slice(0,140));
698 await send("Fetch.fulfillRequest", {
699 requestId, body, responseCode, responseHeaders
700 });
701 } else {
702 DEBUG.verboseSlow && console.log("Sending cache stub", key);
703 await send("Fetch.fulfillRequest", {
704 requestId, ...UNCACHED
705 });
706 }
707 } else {
708 let saveIt = false;
709 if ( Mode == 'select' ) {
710 const rootFrameURL = getRootFrameURL(frameId);
711 const frameDescendsFromBookmarkedURLFrame = hasBookmark(rootFrameURL);
712 saveIt = frameDescendsFromBookmarkedURLFrame;
713 DEBUG.verboseSlow && console.log({rootFrameURL, frameId, mode, saveIt});
714 } else if ( Mode == 'save' ) {
715 saveIt = true;
716 }
717 if ( saveIt ) {
718 const response = {key, responseCode: responseStatusCode, responseHeaders};
719 const resp = await getBody({requestId, responseStatusCode});
720 if ( resp ) {
721 let {body, base64Encoded} = resp;
722 if ( ! base64Encoded ) {
723 body = b64(body);
724 }
725 response.body = body;
726 const responsePath = await saveResponseData(key, request.url, response);
727 State.Cache.set(key, responsePath);
728 } else {
729 DEBUG.verboseSlow && console.warn("get response body error", key, responseStatusCode, responseHeaders, pausedRequest.responseErrorReason);
730 response.body = '';
731 }
732 //await sleep(DELAY);
733 if ( !isFont && responseErrorReason ) {
734 if ( isNavigationRequest ) {

Callers

nothing calls this directly

Calls 9

hasBookmarkFunction · 0.90
dontCacheFunction · 0.85
sendFunction · 0.85
serializeRequestKeyFunction · 0.85
getResponseDataFunction · 0.85
getRootFrameURLFunction · 0.85
getBodyFunction · 0.85
b64Function · 0.85
saveResponseDataFunction · 0.85

Tested by

no test coverage detected