Code coverage report for dnd-core/modules/stores/RefCountStore.js

Statements: 93.1% (27 / 29)      Branches: 60% (6 / 10)      Functions: 100% (7 / 7)      Lines: 100% (22 / 22)      Ignored: none     

All files » dnd-core/modules/stores/ » RefCountStore.js
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    1   50   1   1 1 50   50   50   50 50 50 50   50         1   1 125         1 13         1 138     1     1  
"use strict";
 
var _inherits = function (subClass, superClass) { Iif (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); Eif (superClass) subClass.__proto__ = superClass; };
 
var _classCallCheck = function (instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
 
var Store = require("flummox").Store;
 
var RefCountStore = (function (_Store) {
  function RefCountStore(flux) {
    _classCallCheck(this, RefCountStore);
 
    _Store.call(this);
 
    var registryActionIds = flux.registryActionIds;
 
    this.register(registryActionIds.addSource, this.addRef);
    this.register(registryActionIds.addTarget, this.addRef);
    this.register(registryActionIds.removeSource, this.removeRef);
    this.register(registryActionIds.removeTarget, this.removeRef);
 
    this.state = {
      refCount: 0
    };
  }
 
  _inherits(RefCountStore, _Store);
 
  RefCountStore.prototype.addRef = function addRef() {
    this.setState({
      refCount: this.state.refCount + 1
    });
  };
 
  RefCountStore.prototype.removeRef = function removeRef() {
    this.setState({
      refCount: this.state.refCount - 1
    });
  };
 
  RefCountStore.prototype.hasRefs = function hasRefs() {
    return this.state.refCount > 0;
  };
 
  return RefCountStore;
})(Store);
 
module.exports = RefCountStore;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYW4vRG9jdW1lbnRzL1Byb2plY3RzL2RuZC1jb3JlL21vZHVsZXMvc3RvcmVzL1JlZkNvdW50U3RvcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBQVMsS0FBSyxXQUFRLFNBQVMsRUFBdEIsS0FBSzs7SUFFTyxhQUFhO0FBQ3JCLFdBRFEsYUFBYSxDQUNwQixJQUFJLEVBQUU7MEJBREMsYUFBYTs7QUFFOUIscUJBQU8sQ0FBQzs7UUFFQSxpQkFBaUIsR0FBSyxJQUFJLENBQTFCLGlCQUFpQjs7QUFFekIsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELFFBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxRQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUQsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztBQUU5RCxRQUFJLENBQUMsS0FBSyxHQUFHO0FBQ1gsY0FBUSxFQUFFLENBQUM7S0FDWixDQUFDO0dBQ0g7O1lBZGtCLGFBQWE7O0FBQWIsZUFBYSxXQWdCaEMsTUFBTSxHQUFBLGtCQUFHO0FBQ1AsUUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNaLGNBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2xDLENBQUMsQ0FBQztHQUNKOztBQXBCa0IsZUFBYSxXQXNCaEMsU0FBUyxHQUFBLHFCQUFHO0FBQ1YsUUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNaLGNBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2xDLENBQUMsQ0FBQztHQUNKOztBQTFCa0IsZUFBYSxXQTRCaEMsT0FBTyxHQUFBLG1CQUFHO0FBQ1IsV0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7R0FDaEM7O1NBOUJrQixhQUFhO0dBQVMsS0FBSzs7aUJBQTNCLGFBQWEiLCJmaWxlIjoiL1VzZXJzL2Rhbi9Eb2N1bWVudHMvUHJvamVjdHMvZG5kLWNvcmUvbW9kdWxlcy9zdG9yZXMvUmVmQ291bnRTdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JlIH0gZnJvbSAnZmx1bW1veCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlZkNvdW50U3RvcmUgZXh0ZW5kcyBTdG9yZSB7XG4gIGNvbnN0cnVjdG9yKGZsdXgpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgeyByZWdpc3RyeUFjdGlvbklkcyB9ID0gZmx1eDtcblxuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0cnlBY3Rpb25JZHMuYWRkU291cmNlLCB0aGlzLmFkZFJlZik7XG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RyeUFjdGlvbklkcy5hZGRUYXJnZXQsIHRoaXMuYWRkUmVmKTtcbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdHJ5QWN0aW9uSWRzLnJlbW92ZVNvdXJjZSwgdGhpcy5yZW1vdmVSZWYpO1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0cnlBY3Rpb25JZHMucmVtb3ZlVGFyZ2V0LCB0aGlzLnJlbW92ZVJlZik7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgcmVmQ291bnQ6IDBcbiAgICB9O1xuICB9XG5cbiAgYWRkUmVmKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgcmVmQ291bnQ6IHRoaXMuc3RhdGUucmVmQ291bnQgKyAxXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVSZWYoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICByZWZDb3VudDogdGhpcy5zdGF0ZS5yZWZDb3VudCAtIDFcbiAgICB9KTtcbiAgfVxuXG4gIGhhc1JlZnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucmVmQ291bnQgPiAwO1xuICB9XG59Il19