code: function subscribe(observer) {
          if ((typeof observer === 'undefined' ? 'undefined' : _typeof(observer)) !== 'object') {
            throw new TypeError('Expected the observer to be an object.');
          }
  
          function observeState() {
            if (observer.next) {
              observer.next(getState());
            }
          }
  
          observeState();
          var unsubscribe = outerSubscribe(observeState);
          return { unsubscribe: unsubscribe };
        }
docs: The minimal observable subscription method.
  @param {Object} observer Any object that can be used as an observer.
  The observer object should have a `next` method.
  @returns {subscription} An object with an `unsubscribe` method that can
  be used to unsubscribe the observable from the store, and prevent further
  emission of values from the observable.