reducerless-redux
Version:
redux without reducers
41 lines (36 loc) • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _common = require('./common');
function isReducerlessAction(action) {
if (action.type === _common.type) {
return true;
}
return false;
}
function reduce() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var action = arguments[1];
if (isReducerlessAction(action)) {
if (action.update) {
return action.update(state);
}
return action.setKey(state, action.key, action.value);
}
return state;
}
function reducerEnhancer(rootReducer) {
return function (state, action) {
return Object.assign({}, rootReducer && rootReducer(state, action), reduce(state, action));
};
}
function storeEnhancer() {
return function (createStore) {
return function (reducer, preloadedState, enhancer) {
var store = createStore(reducerEnhancer(reducer), preloadedState, enhancer);
return store;
};
};
}
exports.default = storeEnhancer;