Fastflux Home Reference Source Repository

src/utils/index.js

import assign from 'object-assign';
export {assign};

/**
 * Shorthand for `assign({}, object)`
 * @param {Object} object
 * @returns {Object} cloned `object`
 * @ignore
 */
export function clone(object) {
  return assign({}, object);
}

/**
 * True if `value.subscribe` and `value.unsubscribe` are methods
 * @function
 * @param {Any} value
 * @returns {boolean}
 * @ignore
 */
export function isObservable(value) {
  return value != null &&
   typeof value.subscribe === 'function' &&
   typeof value.unsubscribe === 'function'
}

/**
 * True if {@link isObservable}(`value`) and `value.getState` is a method
 * @function
 * @param {Any} value
 * @returns {boolean}
 * @ignore
 */
export function isObservableState(value) {
  return isObservable(value) &&
   typeof value.getState === 'function'
}