1 | 'use strict';
|
2 | var __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 | };
|
10 | exports.__esModule = true;
|
11 | var stream_1 = require("stream");
|
12 | var concat = require("concat-stream");
|
13 | var MemoryCache = (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 | }());
|
56 | exports["default"] = MemoryCache;
|