action-store
Version:
Action store a la redux
43 lines (33 loc) • 770 B
JavaScript
;
/**
* Module dependencies.
*/
Object.defineProperty(exports, "__esModule", {
value: true
});
var _lodash = require('lodash');
/**
* Action creator initializer.
*
* @param {String} type
* @param {Function} [fn]
* @return {Function}
*/
exports.default = function (type, fn) {
fn = (0, _lodash.isFunction)(fn) ? fn : identity;
return function () {
var payload = fn.apply(undefined, arguments);
var id = payload.id;
var action = { id: id, type: type, payload: payload };
if (arguments.length === 1 && (arguments.length <= 0 ? undefined : arguments[0]) instanceof Error) {
action.error = true;
}
return action;
};
};
/**
* Identity function for action type.
*/
function identity(type) {
return type;
}