UNPKG

1.98 kBJavaScriptView Raw
1'use strict';
2var __assign = (this && this.__assign) || Object.assign || function(t) {
3 for (var s, i = 1, n = arguments.length; i < n; i++) {
4 s = arguments[i];
5 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6 t[p] = s[p];
7 }
8 return t;
9};
10exports.__esModule = true;
11var stream_1 = require("stream");
12var concat = require("concat-stream");
13var MemoryCache = /** @class */ (function () {
14 function MemoryCache() {
15 this._cache = {};
16 }
17 MemoryCache.prototype.getResponse = function (url, callback) {
18 var cache = this._cache;
19 if (cache[url]) {
20 var body = new stream_1.PassThrough();
21 body.end(cache[url].body);
22 callback(null, {
23 statusCode: cache[url].statusCode,
24 headers: cache[url].headers,
25 body: body,
26 requestHeaders: cache[url].requestHeaders,
27 requestTimestamp: cache[url].requestTimestamp
28 });
29 }
30 else {
31 callback(null, null);
32 }
33 };
34 MemoryCache.prototype.updateResponseHeaders = function (url, response) {
35 this._cache[url] = __assign({}, this._cache[url], { headers: response.headers, requestTimestamp: response.requestTimestamp });
36 };
37 MemoryCache.prototype.setResponse = function (url, response) {
38 var cache = this._cache;
39 response.body.pipe(concat(function (body) {
40 cache[url] = {
41 statusCode: response.statusCode,
42 headers: response.headers,
43 body: body,
44 requestHeaders: response.requestHeaders,
45 requestTimestamp: response.requestTimestamp
46 };
47 }));
48 };
49 MemoryCache.prototype.invalidateResponse = function (url, callback) {
50 var cache = this._cache;
51 delete cache[url];
52 callback(null);
53 };
54 return MemoryCache;
55}());
56exports["default"] = MemoryCache;