Code coverage report for src/mix.js

Statements: 46.67% (14 / 30)      Branches: 50% (4 / 8)      Functions: 12.5% (2 / 16)      Lines: 30.43% (7 / 23)      Ignored: 9 statements, 2 functions, 3 branches     

All files » src/ » mix.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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73        1         1       1   1       1                                                                                       1               1  
// via @dan_abramov https://gist.github.com/gaearon/7d94c9f38fdd34a6e690
 
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
// istanbul ignore next
 
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
// istanbul ignore next
 
function _defineProperty(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); }
 
exports["default"] = {
  getInitialState: function getInitialState() {
    // istanbul ignore next
 
    var _this = this;
 
    return Object.keys(this.props || {}).reduce(function (o, key) {
      return _extends({}, o, _defineProperty({}, key, _this.props[key].get()));
    }, {});
  },
 
  componentWillMount: function componentWillMount() {
    this.subscribe(this.props, this.context, this.setData);
  },
 
  componentWillReceiveProps: function componentWillReceiveProps(props, context) {
    this.subscribe(props, context, this.setData);
  },
 
  componentWillUnmount: function componentWillUnmount() {
    this.unsubscribe();
  },
 
  setData: function setData(key, value) {
    this.setState(function (prevState) {
      return { data: _extends({}, prevState.data, _defineProperty({}, key, value)) };
    });
  },
 
  subscribe: function subscribe(props, context, _onNext) {
    var newObservables = this.observe(props, context);
    var newSubscriptions = Object.keys(newObservables).reduce(function (o, key) {
      return _extends({}, o, _defineProperty({}, key, newObservables[key].subscribe({
        onNext: function onNext(value) {
          return _onNext(key, value);
        },
        onError: function onError() {},
        onCompleted: function onCompleted() {}
      })));
    }, {});
 
    this.unsubscribe();
    this.subscriptions = newSubscriptions;
  },
 
  unsubscribe: function unsubscribe() {
    // istanbul ignore next
 
    var _this2 = this;
 
    Object.keys(this.subscriptions || {}).forEach(function (key) {
      return _this2.subscriptions[key].dispose();
    });
    this.subscriptions = {};
  }
};
module.exports = exports["default"];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9zdW5pbHBhaS9jb2RlL2Rpc3RvL3NyYy9taXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O3FCQUVlO0FBQ2IsaUJBQWUsRUFBQSwyQkFBRzs7Ozs7QUFDaEIsV0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsQ0FBQyxFQUFFLEdBQUc7MEJBQVUsQ0FBQyxzQkFBRyxHQUFHLEVBQUcsTUFBSyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFO0tBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztHQUNyRzs7QUFFRCxvQkFBa0IsRUFBQSw4QkFBRztBQUNuQixRQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDeEQ7O0FBRUQsMkJBQXlCLEVBQUEsbUNBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUN4QyxRQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQzlDOztBQUVELHNCQUFvQixFQUFBLGdDQUFHO0FBQ3JCLFFBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztHQUNwQjs7QUFFRCxTQUFPLEVBQUEsaUJBQUMsR0FBRyxFQUFFLEtBQUssRUFBRTtBQUNsQixRQUFJLENBQUMsUUFBUSxDQUFDLFVBQUEsU0FBUzthQUFLLEVBQUMsSUFBSSxlQUFNLFNBQVMsQ0FBQyxJQUFJLHNCQUFHLEdBQUcsRUFBRyxLQUFLLEVBQUMsRUFBQztLQUFDLENBQUMsQ0FBQztHQUN6RTs7QUFFRCxXQUFTLEVBQUEsbUJBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFNLEVBQUU7QUFDaEMsUUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEQsUUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsRUFBRSxHQUFHOzBCQUM1RCxDQUFDLHNCQUNILEdBQUcsRUFBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ25DLGNBQU0sRUFBRSxnQkFBQSxLQUFLO2lCQUFJLE9BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDO1NBQUE7QUFDbkMsZUFBTyxFQUFFLG1CQUFNLEVBQUU7QUFDakIsbUJBQVcsRUFBRSx1QkFBTSxFQUFFO09BQ3hCLENBQUM7S0FBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDOztBQUVaLFFBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNuQixRQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO0dBQ3ZDOztBQUVELGFBQVcsRUFBQSx1QkFBRzs7Ozs7QUFDWixVQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsR0FBRzthQUFJLE9BQUssYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRTtLQUFBLENBQUMsQ0FBQztBQUN4RixRQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztHQUN6QjtDQUNGIiwiZmlsZSI6Ii9Vc2Vycy9zdW5pbHBhaS9jb2RlL2Rpc3RvL3NyYy9taXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB2aWEgQGRhbl9hYnJhbW92IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2dhZWFyb24vN2Q5NGM5ZjM4ZmRkMzRhNmU2OTBcblxuZXhwb3J0IGRlZmF1bHQge1xuICBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucHJvcHMgfHwge30pLnJlZHVjZSgobywga2V5KSA9PiAoey4uLm8sIFtrZXldOiB0aGlzLnByb3BzW2tleV0uZ2V0KCl9KSwge30pO1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICB0aGlzLnN1YnNjcmliZSh0aGlzLnByb3BzLCB0aGlzLmNvbnRleHQsIHRoaXMuc2V0RGF0YSk7XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhwcm9wcywgY29udGV4dCkge1xuICAgIHRoaXMuc3Vic2NyaWJlKHByb3BzLCBjb250ZXh0LCB0aGlzLnNldERhdGEpO1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgfSxcblxuICBzZXREYXRhKGtleSwgdmFsdWUpIHtcbiAgICB0aGlzLnNldFN0YXRlKHByZXZTdGF0ZSA9PiAoe2RhdGE6IHsuLi5wcmV2U3RhdGUuZGF0YSwgW2tleV06IHZhbHVlfX0pKTtcbiAgfSxcblxuICBzdWJzY3JpYmUocHJvcHMsIGNvbnRleHQsIG9uTmV4dCkge1xuICAgIGNvbnN0IG5ld09ic2VydmFibGVzID0gdGhpcy5vYnNlcnZlKHByb3BzLCBjb250ZXh0KTtcbiAgICBjb25zdCBuZXdTdWJzY3JpcHRpb25zID0gT2JqZWN0LmtleXMobmV3T2JzZXJ2YWJsZXMpLnJlZHVjZSgobywga2V5KSA9PlxuICAgICAgKHsuLi5vLFxuICAgICAgICBba2V5XTogbmV3T2JzZXJ2YWJsZXNba2V5XS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG9uTmV4dDogdmFsdWUgPT4gb25OZXh0KGtleSwgdmFsdWUpLFxuICAgICAgICAgIG9uRXJyb3I6ICgpID0+IHt9LFxuICAgICAgICAgIG9uQ29tcGxldGVkOiAoKSA9PiB7fVxuICAgICAgfSl9KSwge30pO1xuXG4gICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IG5ld1N1YnNjcmlwdGlvbnM7XG4gIH0sXG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5zdWJzY3JpcHRpb25zIHx8IHt9KS5mb3JFYWNoKGtleSA9PiB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5kaXNwb3NlKCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHt9O1xuICB9XG59O1xuIl19