export function createSimpleSubscriber()

in src/simpleSubscribers.ts [5:25]


export function createSimpleSubscriber(decorator: Function) {
    return function simpleSubscriber<TFunction extends (...args: any) => any>(
        actionType: string,
        target: TFunction
    ): SimpleAction<TFunction> {
        // Create the action creator
        let simpleActionCreator = action(actionType, function simpleActionCreator() {
            return {
                args: arguments,
            };
        });

        // Create the subscriber
        decorator(simpleActionCreator, function simpleSubscriberCallback(actionMessage: any) {
            return target.apply(null, actionMessage.args);
        });

        // Return a function that dispatches that action
        return (simpleActionCreator as any) as SimpleAction<TFunction>;
    };
}