diff options
Diffstat (limited to 'node_modules/http-basic/lib/memory-cache.js')
| -rw-r--r-- | node_modules/http-basic/lib/memory-cache.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/http-basic/lib/memory-cache.js b/node_modules/http-basic/lib/memory-cache.js new file mode 100644 index 0000000..cf1f5a9 --- /dev/null +++ b/node_modules/http-basic/lib/memory-cache.js @@ -0,0 +1,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 + }; + })); +}; |