redux
Version:
Atomic Flux with hot reloading
37 lines (25 loc) • 998 B
JavaScript
;
exports.__esModule = true;
exports['default'] = createDispatcher;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilsComposeMiddleware = require('./utils/composeMiddleware');
var _utilsComposeMiddleware2 = _interopRequireDefault(_utilsComposeMiddleware);
var INIT_ACTION = {
type: '@@INIT'
};
function createDispatcher(store) {
var middlewares = arguments[1] === undefined ? [] : arguments[1];
return function dispatcher(initialState, setState) {
var state = setState(store(initialState, INIT_ACTION));
function dispatch(action) {
state = setState(store(state, action));
return action;
}
function getState() {
return state;
}
var finalMiddlewares = typeof middlewares === 'function' ? middlewares(getState) : middlewares;
return _utilsComposeMiddleware2['default'].apply(undefined, finalMiddlewares.concat([dispatch]));
};
}
module.exports = exports['default'];