genji-core
Version:
The core lightweight library for genji, based on redux and redux-saga.
51 lines (42 loc) • 1.34 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getMutation;
var _getIterator2 = _interopRequireDefault(require("@babel/runtime/core-js/get-iterator"));
function applyOnMutation(fns, mutation, model, key) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator2.default)(fns), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var fn = _step.value;
mutation = fn(mutation, model, key);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return mutation;
}
function getMutation(reducers, onMutation, model) {
var newHandlers = {};
reducers = reducers || {};
for (var key in reducers) {
if (Object.prototype.hasOwnProperty.call(reducers, key)) {
newHandlers[key] = applyOnMutation(onMutation, reducers[key], model, key);
}
}
return newHandlers;
}