currencies-exchange-rates
Version:
currencies-exchange-rates
50 lines (38 loc) • 3.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _nodeCache = _interopRequireDefault(require("node-cache"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class CacheService {
constructor(ttlSeconds) {
this.cache = new _nodeCache.default({
stdTTL: ttlSeconds,
checkperiod: ttlSeconds * 0.2,
useClones: false
});
}
get(key, fetchData) {
const value = this.cache.get(key);
if (value) {
return Promise.resolve(value);
}
if (!fetchData) {
return undefined;
}
return fetchData().then(result => {
this.cache.set(key, result);
return result;
});
}
del(keys) {
this.cache.del(keys);
}
flush() {
this.cache.flushAll();
}
}
var _default = CacheService;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9jYWNoZS1zZXJ2aWNlLmpzIl0sIm5hbWVzIjpbIkNhY2hlU2VydmljZSIsImNvbnN0cnVjdG9yIiwidHRsU2Vjb25kcyIsImNhY2hlIiwiTm9kZUNhY2hlIiwic3RkVFRMIiwiY2hlY2twZXJpb2QiLCJ1c2VDbG9uZXMiLCJnZXQiLCJrZXkiLCJmZXRjaERhdGEiLCJ2YWx1ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidW5kZWZpbmVkIiwidGhlbiIsInJlc3VsdCIsInNldCIsImRlbCIsImtleXMiLCJmbHVzaCIsImZsdXNoQWxsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxNQUFNQSxZQUFOLENBQW1CO0FBRWZDLEVBQUFBLFdBQVcsQ0FBQ0MsVUFBRCxFQUFhO0FBQ3BCLFNBQUtDLEtBQUwsR0FBYSxJQUFJQyxrQkFBSixDQUFjO0FBQUVDLE1BQUFBLE1BQU0sRUFBRUgsVUFBVjtBQUFzQkksTUFBQUEsV0FBVyxFQUFFSixVQUFVLEdBQUcsR0FBaEQ7QUFBcURLLE1BQUFBLFNBQVMsRUFBRTtBQUFoRSxLQUFkLENBQWI7QUFDSDs7QUFFREMsRUFBQUEsR0FBRyxDQUFDQyxHQUFELEVBQU1DLFNBQU4sRUFBaUI7QUFDaEIsVUFBTUMsS0FBSyxHQUFHLEtBQUtSLEtBQUwsQ0FBV0ssR0FBWCxDQUFlQyxHQUFmLENBQWQ7O0FBRUEsUUFBSUUsS0FBSixFQUFXO0FBQ1AsYUFBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCRixLQUFoQixDQUFQO0FBQ0g7O0FBRUQsUUFBSSxDQUFDRCxTQUFMLEVBQWdCO0FBQ1osYUFBT0ksU0FBUDtBQUNIOztBQUVELFdBQU9KLFNBQVMsR0FBR0ssSUFBWixDQUFrQkMsTUFBRCxJQUFZO0FBQ2hDLFdBQUtiLEtBQUwsQ0FBV2MsR0FBWCxDQUFlUixHQUFmLEVBQW9CTyxNQUFwQjtBQUNBLGFBQU9BLE1BQVA7QUFDSCxLQUhNLENBQVA7QUFJSDs7QUFFREUsRUFBQUEsR0FBRyxDQUFDQyxJQUFELEVBQU87QUFDTixTQUFLaEIsS0FBTCxDQUFXZSxHQUFYLENBQWVDLElBQWY7QUFDSDs7QUFFREMsRUFBQUEsS0FBSyxHQUFHO0FBQ0osU0FBS2pCLEtBQUwsQ0FBV2tCLFFBQVg7QUFDSDs7QUE3QmM7O2VBaUNKckIsWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOb2RlQ2FjaGUgZnJvbSAnbm9kZS1jYWNoZSc7XHJcblxyXG5jbGFzcyBDYWNoZVNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHR0bFNlY29uZHMpIHtcclxuICAgICAgICB0aGlzLmNhY2hlID0gbmV3IE5vZGVDYWNoZSh7IHN0ZFRUTDogdHRsU2Vjb25kcywgY2hlY2twZXJpb2Q6IHR0bFNlY29uZHMgKiAwLjIsIHVzZUNsb25lczogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGtleSwgZmV0Y2hEYXRhKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWZldGNoRGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZldGNoRGF0YSgpLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldChrZXksIHJlc3VsdCk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsKGtleXMpIHtcclxuICAgICAgICB0aGlzLmNhY2hlLmRlbChrZXlzKTtcclxuICAgIH1cclxuXHJcbiAgICBmbHVzaCgpIHtcclxuICAgICAgICB0aGlzLmNhY2hlLmZsdXNoQWxsKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWNoZVNlcnZpY2U7Il19