code: function SimpleCache(options) {
      var self = this;
  
      options = options || {};
  
      this.expireAfterSeconds = parseFloat(options.expireAfterSeconds || 0);
      this._keyValueStore = {};
  
      // periodic cleanup
      if (this.expireAfterSeconds > 0) {
          setInterval(function () {
              Object.keys(self._keyValueStore).forEach(function (key) {
                  self.get(key).catch(function () {
                      // get the entry, resulting in a cleanup if it's expired
                  });
              });
  
              if (options.logger) {
                  options.logger.info('SimpleCache periodic cleanup after %s seconds', self.expireAfterSeconds);
              }
          }, this.expireAfterSeconds * 1000);
      }
  }
docs: Cache implementation that stores entries in an object in memory (not efficient for large caches)
  
  @extends Cache
  
  @param {object} [options] Options
  @param {number} [options.expireAfterSeconds=300] Expiration time in seconds (if undefined, entries won't expire)
  @param {winston~Logger} [options.logger] Logger
  
  @example
  var agent = new PolicyAgent({
  cache: new SimpleCache({expireAfterSeconds: 600}) // cached entries expire after 10 minutes
  ...
  })
  
  @constructor