react-redux-fetch
Version:
A declarative and customizable way to fetch data for React components and manage that data in the Redux state
46 lines (35 loc) • 1.43 kB
JavaScript
exports.__esModule = true;
exports.action = undefined;
var _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; };
var _omit = require('lodash/fp/omit');
var _omit2 = _interopRequireDefault(_omit);
var _actionTypes = require('../constants/actionTypes');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var omitType = (0, _omit2.default)('type');
var action = exports.action = function action(type) {
return function () {
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _extends({ type: type }, payload);
};
};
var forMethod = function forMethod(verb) {
return {
request: function request(data) {
return action(_actionTypes.FETCH.for(verb).REQUEST)(omitType(data));
},
fulfill: function fulfill(data) {
return action(_actionTypes.FETCH.for(verb).FULFILL)(omitType(data));
},
reject: function reject(data) {
return action(_actionTypes.FETCH.for(verb).REJECT)(omitType(data));
}
};
};
var clear = function clear(resourceName) {
return action(_actionTypes.CLEAR)({ resource: { name: resourceName } });
};
exports.default = {
for: forMethod,
clear: clear
};
;