@sigi/core
Version:
Sigi core library
23 lines • 1.01 kB
JavaScript
import { createActionDecorator, addSSREffectMeta, addActionToSkip } from './metadata';
export const DefineAction = createActionDecorator('DefineAction');
export const ImmerReducer = createActionDecorator('ImmerReducer');
export const Reducer = createActionDecorator('Reducer');
export const Effect = (options) => {
const effectDecorator = createActionDecorator('Effect');
if (options && (options.ssr || options.payloadGetter)) {
const { payloadGetter, skipFirstClientDispatch } = {
payloadGetter: undefined,
skipFirstClientDispatch: true,
...options,
};
return (target, propertyKey, descriptor) => {
addSSREffectMeta(target, { action: propertyKey, payloadGetter });
if (skipFirstClientDispatch) {
addActionToSkip(target, propertyKey);
}
return Effect()(target, propertyKey, descriptor);
};
}
return effectDecorator();
};
//# sourceMappingURL=decorators.js.map