blob: cf1f5a97909336273c1722bd10d35b5f5b4736f9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
'use strict';
var PassThrough = require('stream').PassThrough;
var concat = require('concat-stream');
var Response = require('http-response-object');
module.exports = MemoryCache;
function MemoryCache() {
this._cache = {};
}
MemoryCache.prototype.getResponse = function (url, callback) {
var cache = this._cache;
if (cache[url]) {
var body = new PassThrough();
body.end(cache[url].body);
callback(null, {
statusCode: cache[url].statusCode,
headers: cache[url].headers,
body: body,
requestHeaders: cache[url].requestHeaders,
requestTimestamp: cache[url].requestTimestamp
});
} else {
callback(null, null);
}
};
MemoryCache.prototype.setResponse = function (url, response) {
var cache = this._cache;
response.body.pipe(concat(function (body) {
cache[url] = {
statusCode: response.statusCode,
headers: response.headers,
body: body,
requestHeaders: response.requestHeaders,
requestTimestamp: response.requestTimestamp
};
}));
};
|