All files / platform/packages/cache/src/Cache index.js

100% Statements 11/11
100% Branches 0/0
100% Functions 5/5
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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    1x       1x 1x   1x   6x 6x           1x 1x       6x                   1x       1x  
'use strict';
 
const LRU = require('lru-cache');
 
class Cache {
  constructor(app) {
    this._app = app;
    this._store = this._newStore();
 
    return new Proxy(this, {
      get: function (target, name) {
        const store = target.store();
        return store[name].bind(store);
      },
    });
  }
 
  _newStore() {
    const options = this._getConfig();
    return new LRU(options);
  }
 
  store() {
    return this._store;
  }
 
  /**
   * Get the cache configuration.
   *
   * @return {object}
   * @private
   */
  _getConfig() {
    return this._app.use('Adonis/Src/Config').get('core.shared.cache');
  }
}
 
module.exports = Cache;