1.0.3 • Published 3 years ago

reducesauce v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

reducesauce

Simplified reducer pattern creation.

Based on reduxsauce

Installation

$ yarn add reducesauce
# or
$ npm -i reducesauce

Usage

createActions

const Actions = createActions(
  {
    addUser: ["name", "age"],
    updateUserName: ["name"],
  },
  "users"
);
/*
    RETURN:
    const Actions = {
        Creators: {
            addUser: (name, age) => ...,
            updateUserName: (index, name) => ...
        },
        Types: {
            addUser: 'users/ADD_USER',
            updateUserName: 'users/UPDATE_USER_NAME'
        }
    }
*/

createReducer

    const initialState = {
    users: [],
    };

    const reducer = createReducer(initialState, {
        [Actions.Types.addUser]: (state, {name, age}) => ...,
        [Actions.Types.updateUserName]: (state, {name, age}) => ...,
    });
/*
    const _dispatchers = {
        'users/ADD_USER': (state, {name, age}) => ...,
        'users/UPDATE_USER_NAME': (state, {index, name}) => ...
    }
    RETURN:
    function reducer(state = initialState, action, middleWare) {
        if(middleWare) middleWare(state, action);

        return _dispatchers[action.type](state, action.payload) ?? state
    }
*/
1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago