UNPKG

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
'use strict'; 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 };