UNPKG

redux-data-structures

Version:
39 lines (38 loc) 1.58 kB
export default (function (_ref) { var _ref$initialState = _ref.initialState, initialState = _ref$initialState === undefined ? 0 : _ref$initialState, _ref$incrementActionT = _ref.incrementActionTypes, incrementActionTypes = _ref$incrementActionT === undefined ? [] : _ref$incrementActionT, _ref$increment = _ref.increment, increment = _ref$increment === undefined ? function () { return 1; } : _ref$increment, max = _ref.max, _ref$decrementActionT = _ref.decrementActionTypes, decrementActionTypes = _ref$decrementActionT === undefined ? [] : _ref$decrementActionT, _ref$decrement = _ref.decrement, decrement = _ref$decrement === undefined ? function () { return 1; } : _ref$decrement, min = _ref.min, _ref$resetActionTypes = _ref.resetActionTypes, resetActionTypes = _ref$resetActionTypes === undefined ? [] : _ref$resetActionTypes; return function () { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments[1]; var type = action.type; if (incrementActionTypes.includes(type)) { var m = max && max(action); var x = state + increment(action); return m || m === 0 ? Math.min(x, m) : x; } else if (decrementActionTypes.includes(type)) { var n = min && min(action); var y = state - decrement(action); return n || n === 0 ? Math.max(y, n) : y; } else if (resetActionTypes.includes(type)) { return initialState; } else { return state; } }; });