# 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

    1×

    3×

    1×

    1×
    1×

    1×

    1×

    1×"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;