refer
Version:
redux-like library for handling global state on functional style
36 lines (28 loc) • 1.02 kB
JavaScript
;
exports.__esModule = true;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _createDispatch = require('./createDispatch');
var _createDispatch2 = _interopRequireDefault(_createDispatch);
var _types = require('./types');
var combineHandlers = function combineHandlers() {
for (var _len = arguments.length, handlers = Array(_len), _key = 0; _key < _len; _key++) {
handlers[_key] = arguments[_key];
}
return handlers.reduce(function (rootHandler, handler) {
if (_types.isArr(handler)) {
handler = combineHandlers.apply(undefined, handler);
}
var dispatch = _createDispatch2['default'](handler);
return Object.keys(handler).reduce(function (rootHandler, key) {
if (!rootHandler[key]) {
rootHandler[key] = [];
}
rootHandler[key].push(function (value) {
return dispatch(key, value);
});
return rootHandler;
}, rootHandler);
}, {});
};
exports['default'] = combineHandlers;
module.exports = exports['default'];