all files / kayn/dist/lib/Caches/ BasicJSCache.js

61.76% Statements 21/34
31.25% Branches 5/16
44.44% Functions 4/9
44.44% Lines 8/18
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 40 41 42 43 44 45 46 47 48 49 50                                                                                   
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; Eif ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (EprotoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
var BasicJSCache = function () {
  function BasicJSCache() {
    _classCallCheck(this, BasicJSCache);
 
    this.cache = {};
  }
 
  _createClass(BasicJSCache, [{
    key: "get",
    value: function get(args, cb) {
      if (this.cache[args.key]) {
        if (Date.now() > this.cache[args.key].expires) {
          delete this.cache[args.key];
          return cb('expired cache key');
        } else {
          return cb(null, this.cache[args.key].value);
        }
      }
      return cb("cache key doesn't exist");
    }
  }, {
    key: "set",
    value: function set(args, value) {
      this.cache[args.key] = {
        expires: args.ttl ? this.setExp(Date.now(), args.ttl) : null,
        value: value
      };
    }
  }, {
    key: "setExp",
    value: function setExp(date, secs) {
      // Must convert to milliseconds.
      return date + secs * 1000;
    }
  }]);
 
  return BasicJSCache;
}();
 
exports.default = BasicJSCache;