Browse Source

No point doing caching inside a function now it's only used once

cache-clone-stream
Luke Childs 8 years ago
parent
commit
f6f915bae3
  1. 47
      index.js

47
index.js

@ -61,7 +61,27 @@ function requestAsEventEmitter(opts) {
response.url = redirectUrl || requestUrl;
response.requestUrl = requestUrl;
maybeCacheResponse(response, opts);
const policy = new CachePolicy(opts, response);
if (opts.cache && policy.storable()) {
const encoding = opts.encoding === null ? 'buffer' : opts.encoding;
getStream(response, {encoding})
.then(body => {
response.body = body;
const key = cacheKey(opts);
const value = {
policy: policy.toObject(),
response: {
url: response.url,
statusCode: response.statusCode,
body: {
encoding: opts.encoding,
data: response.body
}
}
};
opts.cache.set(key, value);
});
}
ee.emit('response', response);
});
@ -327,31 +347,6 @@ function normalizeArguments(url, opts) {
return opts;
}
function maybeCacheResponse(response, opts) {
const policy = new CachePolicy(opts, response);
if (!(opts.cache && policy.storable())) {
return;
}
const encoding = opts.encoding === null ? 'buffer' : opts.encoding;
getStream(response, {encoding})
.then(body => {
response.body = body;
const key = cacheKey(opts);
const value = {
policy: policy.toObject(),
response: {
url: response.url,
statusCode: response.statusCode,
body: {
encoding: opts.encoding,
data: response.body
}
}
};
opts.cache.set(key, value);
});
}
function cacheKey(opts) {
const url = normalizeUrl(urlLib.format(opts));
return `${opts.method}:${url}`;

Loading…
Cancel
Save