updux/src/actions.js

27 lines
648 B
JavaScript
Raw Normal View History

2022-08-29 14:32:52 +00:00
export function isActionGen(action) {
2022-08-28 23:29:31 +00:00
return typeof action === 'function' && action.type;
}
2022-08-26 00:06:52 +00:00
export function action(type, payloadFunction, transformer) {
2022-08-25 23:43:07 +00:00
let generator = function (...payloadArg) {
const result = { type };
if (payloadFunction) {
result.payload = payloadFunction(...payloadArg);
} else {
if (payloadArg[0] !== undefined) result.payload = payloadArg[0];
}
return result;
};
if (transformer) {
const orig = generator;
generator = (...args) => transformer(orig(...args), args);
}
generator.type = type;
return generator;
}