UNPKG

2.47 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends2 = require('babel-runtime/helpers/extends');
8
9var _extends3 = _interopRequireDefault(_extends2);
10
11var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
12
13var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
14
15var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
16
17var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
18
19exports.default = clientMiddleware;
20
21function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23(function () {
24 var enterModule = require('react-hot-loader').enterModule;
25
26 enterModule && enterModule(module);
27})();
28
29function clientMiddleware(helpers) {
30 return function (_ref) {
31 var dispatch = _ref.dispatch,
32 getState = _ref.getState;
33 return function (next) {
34 return function (action) {
35 if (typeof action === 'function') {
36 return action(dispatch, getState);
37 }
38
39 var promise = action.promise,
40 types = action.types,
41 rest = (0, _objectWithoutProperties3.default)(action, ['promise', 'types']);
42
43 if (!promise) {
44 return next(action);
45 }
46
47 var _types = (0, _slicedToArray3.default)(types, 3),
48 REQUEST = _types[0],
49 SUCCESS = _types[1],
50 FAILURE = _types[2];
51
52 next((0, _extends3.default)({}, rest, { type: REQUEST }));
53
54 var actionPromise = promise(helpers, dispatch);
55 actionPromise.then(function (result) {
56 return next((0, _extends3.default)({}, rest, { result: result, type: SUCCESS }));
57 }, function (error) {
58 return next((0, _extends3.default)({}, rest, { error: error, type: FAILURE }));
59 }).catch(function (error) {
60 console.error('MIDDLEWARE ERROR:', error);
61 next((0, _extends3.default)({}, rest, { error: error, type: FAILURE }));
62 });
63
64 return actionPromise;
65 };
66 };
67 };
68}
69;
70
71(function () {
72 var reactHotLoader = require('react-hot-loader').default;
73
74 var leaveModule = require('react-hot-loader').leaveModule;
75
76 if (!reactHotLoader) {
77 return;
78 }
79
80 reactHotLoader.register(clientMiddleware, 'clientMiddleware', '../../src/redux/middleware/clientMiddleware.js');
81 leaveModule(module);
82})();
83
84;
85module.exports = exports['default'];
86//# sourceMappingURL=clientMiddleware.js.map
\No newline at end of file