1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = createActions;
|
5 |
|
6 | var _invariant = _interopRequireDefault(require("invariant"));
|
7 |
|
8 | var _isPlainObject = _interopRequireDefault(require("./utils/isPlainObject"));
|
9 |
|
10 | var _isFunction = _interopRequireDefault(require("./utils/isFunction"));
|
11 |
|
12 | var _identity = _interopRequireDefault(require("./utils/identity"));
|
13 |
|
14 | var _isArray = _interopRequireDefault(require("./utils/isArray"));
|
15 |
|
16 | var _isString = _interopRequireDefault(require("./utils/isString"));
|
17 |
|
18 | var _isNil = _interopRequireDefault(require("./utils/isNil"));
|
19 |
|
20 | var _getLastElement = _interopRequireDefault(require("./utils/getLastElement"));
|
21 |
|
22 | var _camelCase = _interopRequireDefault(require("./utils/camelCase"));
|
23 |
|
24 | var _arrayToObject = _interopRequireDefault(require("./utils/arrayToObject"));
|
25 |
|
26 | var _flattenActionMap = _interopRequireDefault(require("./utils/flattenActionMap"));
|
27 |
|
28 | var _unflattenActionCreators = _interopRequireDefault(require("./utils/unflattenActionCreators"));
|
29 |
|
30 | var _createAction = _interopRequireDefault(require("./createAction"));
|
31 |
|
32 | var _constants = require("./constants");
|
33 |
|
34 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
35 |
|
36 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
37 |
|
38 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
39 |
|
40 | function createActions(actionMap) {
|
41 | for (var _len = arguments.length, identityActions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
42 | identityActions[_key - 1] = arguments[_key];
|
43 | }
|
44 |
|
45 | var options = (0, _isPlainObject.default)((0, _getLastElement.default)(identityActions)) ? identityActions.pop() : {};
|
46 | (0, _invariant.default)(identityActions.every(_isString.default) && ((0, _isString.default)(actionMap) || (0, _isPlainObject.default)(actionMap)), 'Expected optional object followed by string action types');
|
47 |
|
48 | if ((0, _isString.default)(actionMap)) {
|
49 | return actionCreatorsFromIdentityActions([actionMap].concat(identityActions), options);
|
50 | }
|
51 |
|
52 | return _objectSpread({}, actionCreatorsFromActionMap(actionMap, options), actionCreatorsFromIdentityActions(identityActions, options));
|
53 | }
|
54 |
|
55 | function actionCreatorsFromActionMap(actionMap, options) {
|
56 | var flatActionMap = (0, _flattenActionMap.default)(actionMap, options);
|
57 | var flatActionCreators = actionMapToActionCreators(flatActionMap);
|
58 | return (0, _unflattenActionCreators.default)(flatActionCreators, options);
|
59 | }
|
60 |
|
61 | function actionMapToActionCreators(actionMap, _temp) {
|
62 | var _ref = _temp === void 0 ? {} : _temp,
|
63 | prefix = _ref.prefix,
|
64 | _ref$namespace = _ref.namespace,
|
65 | namespace = _ref$namespace === void 0 ? _constants.DEFAULT_NAMESPACE : _ref$namespace;
|
66 |
|
67 | function isValidActionMapValue(actionMapValue) {
|
68 | if ((0, _isFunction.default)(actionMapValue) || (0, _isNil.default)(actionMapValue)) {
|
69 | return true;
|
70 | }
|
71 |
|
72 | if ((0, _isArray.default)(actionMapValue)) {
|
73 | var _actionMapValue$ = actionMapValue[0],
|
74 | payload = _actionMapValue$ === void 0 ? _identity.default : _actionMapValue$,
|
75 | meta = actionMapValue[1];
|
76 | return (0, _isFunction.default)(payload) && (0, _isFunction.default)(meta);
|
77 | }
|
78 |
|
79 | return false;
|
80 | }
|
81 |
|
82 | return (0, _arrayToObject.default)(Object.keys(actionMap), function (partialActionCreators, type) {
|
83 | var _objectSpread2;
|
84 |
|
85 | var actionMapValue = actionMap[type];
|
86 | (0, _invariant.default)(isValidActionMapValue(actionMapValue), 'Expected function, undefined, null, or array with payload and meta ' + ("functions for " + type));
|
87 | var prefixedType = prefix ? "" + prefix + namespace + type : type;
|
88 | var actionCreator = (0, _isArray.default)(actionMapValue) ? _createAction.default.apply(void 0, [prefixedType].concat(actionMapValue)) : (0, _createAction.default)(prefixedType, actionMapValue);
|
89 | return _objectSpread({}, partialActionCreators, (_objectSpread2 = {}, _objectSpread2[type] = actionCreator, _objectSpread2));
|
90 | });
|
91 | }
|
92 |
|
93 | function actionCreatorsFromIdentityActions(identityActions, options) {
|
94 | var actionMap = (0, _arrayToObject.default)(identityActions, function (partialActionMap, type) {
|
95 | var _objectSpread3;
|
96 |
|
97 | return _objectSpread({}, partialActionMap, (_objectSpread3 = {}, _objectSpread3[type] = _identity.default, _objectSpread3));
|
98 | });
|
99 | var actionCreators = actionMapToActionCreators(actionMap, options);
|
100 | return (0, _arrayToObject.default)(Object.keys(actionCreators), function (partialActionCreators, type) {
|
101 | var _objectSpread4;
|
102 |
|
103 | return _objectSpread({}, partialActionCreators, (_objectSpread4 = {}, _objectSpread4[(0, _camelCase.default)(type)] = actionCreators[type], _objectSpread4));
|
104 | });
|
105 | } |
\ | No newline at end of file |