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;
|
|
|
|
}
|