got icon indicating copy to clipboard operation
got copied to clipboard

Overriding caching behaviour (cache even if remote host told me to not do that)

Open bago opened this issue 6 years ago • 4 comments
trafficstars

Issuehunt badges

What would you like to discuss?

I'd like to override got caching so to extend what the remote headers ask me to do. I currently use the max-stale in the request header to extend somehow the caching, but this doesn't work if the remote service use strict caching headers and got doesn't even store them.

I tried manipulating response headers in the .on('response', ) hook, but this doesn't work. Sounds like got caches the manipulated response, but the cachecontrol is precomputed into a different property and uses the original cache-control.

I guess this is something happending in cacheable-request makeRequest's response handler that calls the ee.emit('response') AFTER storing the response, so maybe I should open an issue against the "cacheable-request" project, but my knowledge of got internals is very limited, so I preferred to start with this question as maybe you can identify a better way or a workaround to alter if and how long got caches a result.

Checklist

  • [X] I have read the documentation.

There is a $60.00 open bounty on this issue. Add more on Issuehunt.

bago avatar Mar 08 '19 11:03 bago

@issuehunt has funded $60.00 to this issue.


IssueHuntBot avatar Apr 11 '19 12:04 IssueHuntBot

my use case: I want to cache every outgoing GET request within current incoming request. I create express middleware

function cacheHttpAdapter(req: Request, res: Response, next: NextFunction) {
    req.cacheHttpAdapter = new Map();

    next();
}

and pass it to got wrapper, similar to described in #723 , because I don't want RFC cache behaviour

It will be much more convenient to manage cache behaviour without any wrappers

rifler avatar May 23 '19 10:05 rifler

@sindresorhus can we close this one and move to #875 ?

szmarczak avatar Nov 06 '19 21:11 szmarczak

Let's keep it open so we can use the bounty for this issue for #875 instead. We can close this issue when #875 is closed. I'll lock it instead.

sindresorhus avatar Nov 12 '19 06:11 sindresorhus