src/internals/reactools/reduxPatches/bindActionCreators.js
/**
 * Turns an object whose values are action creators, into an object with the
 * same keys, but with every function wrapped into a `dispatch` call so they
 * may be invoked directly. This is just a convenience method, as you can call
 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
 *
 * For convenience, you can also pass a single function as the first argument,
 * and get a function in return.
 *
 * @param {Function|Object} actionCreators An object whose values are action
 * creator functions. One handy way to obtain it is to use ES6 `import * as`
 * syntax. You may also pass a single function.
 *
 * @param {Function} dispatch The `dispatch` function available on your Redux
 * store.
 *
 * @returns {Function|Object} The object mimicking the original object, but with
 * every action creator wrapped into the `dispatch` call. If you passed a
 * function as `actionCreators`, the return value will also be a single
 * function.
 */
Turns an object whose values are action creators, into an object with the
same keys, but with every function wrapped into a `dispatch` call so they
may be invoked directly. This is just a convenience method, as you can call
`store.dispatch(MyActionCreators.doSomething())` yourself just fine.

For convenience, you can also pass a single function as the first argument,
and get a function in return.

@param {Function|Object} actionCreators An object whose values are action
creator functions. One handy way to obtain it is to use ES6 `import * as`
syntax. You may also pass a single function.

@param {Function} dispatch The `dispatch` function available on your Redux
store.

@returns {Function|Object} The object mimicking the original object, but with
every action creator wrapped into the `dispatch` call. If you passed a
function as `actionCreators`, the return value will also be a single
function.
Turns an object whose values are action creators into an object with the same keys but with every function wrapped into a ` dispatch ` call so they may be invoked directly . This is just a convenience method as you can call ` store . dispatch ( MyActionCreators . doSomething () ) ` yourself just fine . For convenience you can also pass a single function as the first argument and get a function in return . @param { Function|Object } actionCreators An object whose values are action creator functions . One handy way to obtain it is to use ES6 ` import * as ` syntax . You may also pass a single function . @param { Function } dispatch The ` dispatch ` function available on your Redux store . @returns { Function|Object } The object mimicking the original object but with every action creator wrapped into the ` dispatch ` call . If you passed a function as ` actionCreators ` the return value will also be a single function .
function bindActionCreators(actionCreators, dispatch) {
  if (typeof actionCreators === 'function') {
    return bindActionCreator(actionCreators, dispatch);
  }
  if (typeof actionCreators !== 'object' || actionCreators === null) {
    throw new Error(
      `bindActionCreators expected an object or a function, instead received ${
        actionCreators === null ? 'null' : typeof actionCreators
      }. ` +
        `Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?`
    );
  }
  const keys = Object.keys(actionCreators);
  const boundActionCreators = {};
  for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    const actionCreator = actionCreators[key];
    if (typeof actionCreator === 'function') {
      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
    }
  }
  return boundActionCreators;
}
function bindActionCreators ( actionCreators , dispatch ) { if ( typeof actionCreators === 'function' ) { return bindActionCreator ( actionCreators , dispatch ) ; } if ( typeof actionCreators !== 'object' || actionCreators === null ) { throw new Error ( ` ${ actionCreators === null ? 'null' : typeof actionCreators } ` + ` ` ) ; } const keys = Object . keys ( actionCreators ) ; const boundActionCreators = { } ; for ( let i = 0 ; i < keys . length ; i ++ ) { const key = keys [ i ] ; const actionCreator = actionCreators [ key ] ; if ( typeof actionCreator === 'function' ) { boundActionCreators [ key ] = bindActionCreator ( actionCreator , dispatch ) ; } } return boundActionCreators ; }
Turns an object whose values are action creators, into an object with the
 same keys, but with every function wrapped into a `dispatch` call so they
 may be invoked directly.
Turns an object whose values are action creators into an object with the same keys but with every function wrapped into a ` dispatch ` call so they may be invoked directly .