All files / src/backends MemoryStore.js

6.67% Statements 1/15
0% Branches 0/9
0% Functions 0/4
6.67% Lines 1/15
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79                                                                                                                                                          1x  
/**
 * Dependencies
 */
 
/**
 * MemoryStore
 */
class MemoryStore {
 
  /**
   * constructor
   */
  constructor (data = {}) {
    this.data = data
  }
 
  /**
   * get
   *
   * @param {string} collection
   * @param {string} key
   *
   * @returns {Promise}
   */
  get (collection, key) {
    let coll = this.data[collection]
 
    if (!coll) {
      return Promise.reject(new Error(`Unknown collection "${collection}"`))
    }
 
    return Promise.resolve(coll[key] || null)
  }
 
  /**
   * put
   *
   * @param {string} collection
   * @param {string} key
   * @param {Object} value
   *
   * @returns {Promise}
   */
  put (collection, key, value) {
    let coll = this.data[collection]
 
    if (!coll) {
      coll = this.data[collection] = {}
    }
 
    return Promise.resolve(coll[key] = value)
  }
 
  /**
   * del
   *
   * @param {string} collection
   * @param {string} key
   *
   * @returns {Promise}
   */
  del (collection, key) {
    let coll = this.data[collection]
 
    if (!coll) {
      return Promise.reject(new Error(`Unknown collection "${collection}"`))
    }
 
    delete coll[key]
    return Promise.resolve(true)
  }
 
}
 
/**
 * Export
 */
module.exports = MemoryStore