You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.0 KiB

'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
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; }
var _lodashLangIsFunction = require('lodash/lang/isFunction');
var _lodashLangIsFunction2 = _interopRequireDefault(_lodashLangIsFunction);
var _lodashLangIsArray = require('lodash/lang/isArray');
var _lodashLangIsArray2 = _interopRequireDefault(_lodashLangIsArray);
exports['default'] = function (type, payload) {
var actionCreator = null;
if (payload === undefined) {
actionCreator = function () {
return {
type: type
};
};
} else if (typeof payload === 'string') {
actionCreator = function (args) {
return {
type: type,
payload: _defineProperty({}, payload, args[0])
};
};
} else if ((0, _lodashLangIsArray2['default'])(payload)) {
actionCreator = function (args) {
return {
type: type,
payload: payload.reduce(function (pre, key, index) {
pre[key] = args[index];
return pre;
}, {})
};
};
} else if ((0, _lodashLangIsFunction2['default'])(payload)) {
actionCreator = function (args) {
return _defineProperty({
type: type
}, payload, payload.apply(undefined, _toConsumableArray(args)));
};
}
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var action = actionCreator(args);
return actionCreator(args);
};
};
module.exports = exports['default'];