UNPKG

1.76 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = createAction;
5
6var _invariant = _interopRequireDefault(require("invariant"));
7
8var _isFunction = _interopRequireDefault(require("./utils/isFunction"));
9
10var _identity = _interopRequireDefault(require("./utils/identity"));
11
12var _isNull = _interopRequireDefault(require("./utils/isNull"));
13
14function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16function createAction(type, payloadCreator, metaCreator) {
17 if (payloadCreator === void 0) {
18 payloadCreator = _identity.default;
19 }
20
21 (0, _invariant.default)((0, _isFunction.default)(payloadCreator) || (0, _isNull.default)(payloadCreator), 'Expected payloadCreator to be a function, undefined or null');
22 var finalPayloadCreator = (0, _isNull.default)(payloadCreator) || payloadCreator === _identity.default ? _identity.default : function (head) {
23 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
24 args[_key - 1] = arguments[_key];
25 }
26
27 return head instanceof Error ? head : payloadCreator.apply(void 0, [head].concat(args));
28 };
29 var hasMeta = (0, _isFunction.default)(metaCreator);
30 var typeString = type.toString();
31
32 var actionCreator = function actionCreator() {
33 var payload = finalPayloadCreator.apply(void 0, arguments);
34 var action = {
35 type: type
36 };
37
38 if (payload instanceof Error) {
39 action.error = true;
40 }
41
42 if (payload !== undefined) {
43 action.payload = payload;
44 }
45
46 if (hasMeta) {
47 action.meta = metaCreator.apply(void 0, arguments);
48 }
49
50 return action;
51 };
52
53 actionCreator.toString = function () {
54 return typeString;
55 };
56
57 return actionCreator;
58}
\No newline at end of file