Browse Source

Store status code and url in cache. Don't store headers.

No need to store headers as they're already stored in the cache policy and retrieved with policy.responseHeaders()
extract-response
Luke Childs 8 years ago
parent
commit
903fbfaa84
  1. 16
      index.js

16
index.js

@ -72,7 +72,8 @@ function requestAsEventEmitter(opts) {
const value = JSON.stringify({
policy: policy.toObject(),
response: {
headers: response.headers,
url: response.url,
statusCode: response.statusCode,
body: data
}
});
@ -120,8 +121,13 @@ function requestAsEventEmitter(opts) {
opts.cache.delete(key);
throw new Error('Cached value is stale');
}
cachedValue.response.headers = policy.responseHeaders();
const response = responseFromCache(requestUrl, cachedValue.response);
const {
statusCode,
body,
url
} = cachedValue.response;
const headers = policy.responseHeaders();
const response = new Response(statusCode, headers, Buffer.from(body), url);
ee.emit('response', response);
});
};
@ -348,10 +354,6 @@ function cacheKey(opts) {
return `${opts.method}:${url}`;
}
function responseFromCache(url, cachedResponse) {
return new Response(200, cachedResponse.headers, Buffer.from(cachedResponse.body), url);
}
function got(url, opts) {
try {
return asPromise(normalizeArguments(url, opts));

Loading…
Cancel
Save