redux-smart-actions
Version:
The fastest way to write Redux actions
27 lines (21 loc) • 966 B
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
export var createThunk = function createThunk(name, thunk) {
var thunkCreator = function thunkCreator() {
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
params[_key] = arguments[_key];
}
return function (dispatch, getState, extraArguments) {
var actionToDispatch = thunk.apply(void 0, params)(dispatch, getState, extraArguments);
if (!actionToDispatch) {
return null;
}
return dispatch(_extends({
type: name
}, actionToDispatch));
};
};
thunkCreator.toString = function () {
return name;
};
return thunkCreator;
};