Socket
Socket
Sign inDemoInstall

redux-util

Package Overview
Dependencies
1
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    redux-util

Redux util for easy work


Version published
Weekly downloads
1
decreased by-75%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

redux-util

npm install redux-util

Or

yarn add redux-util

This library is easy way to work with Redux.

Let's see the some examples

1. Create action

import {buildActionCreator} from 'redux-util'

const GET_USER_DATA_SUCCESS = 'GET_USER_DATA_SUCCESS';

//Build actionCreator with param 'users' 
const getUserInfoRequestActionCreator = buildActionCreator(GET_USER_DATA_SUCCESS, 'users');

const getUserInfoAction = () => (dispatch: Dispatch) => {
    return api.fetchUsers().then(
        response => {
            dispatch(
                //Create action with param
                getUserInfoSuccessActionCreator(response)
            )
        }
    );
};

export default getUserInfoAction;

2. prefixed actions

import {buildActionCreator, genericActionType} from 'redux-util'

const PREFIX = 'USER';
const LOAD_DATA = genericActionType(PREFIX, 'LOAD_DATA');

const loadUserDataAction = buildActionCreator(LOAD_DATA, 'data');

export const loadUser = () => (dispatch: Dispatch) => {
    return api.fetchUser().then(
        response => {
            dispatch(
                loadUserDataAction(response)
            )
        }
    );
};

3. generic action creator

import {buildGenericActionCreator} from 'redux-util'

const START_LOADING = 'START_LOADING';
const END_LOADING = 'END_LOADING';

export const startLoadingActionCreator = buildGenericActionCreator(START_LOADING);
export const endLoadingActionCreator = buildGenericActionCreator(END_LOADING);

// ....

import {startLoadingActionCreator, endLoadingActionCreator} from 'loading-reducer'

const PREFIX = 'PREFIX';
const startLoading = startLoadingActionCreator(PREFIX);
const endLoading = endLoadingActionCreator(PREFIX);
export const loadUser = () => (dispatch: Dispatch) => {
    dispatch(startLoading());
    return api.fetchUser().then(
        response => {
            dispatch(
                loadUserDataAction(response)
            );
            dispatch(endLoading());
        }
    );
};

4. Create reducer

import {Reducer} from 'redux-util'
import {UserState} from 'types/UserState'

import {
    GET_USER_DATA_REQUEST,
    GET_USER_DATA_SUCCESS,
    GET_USER_DATA_FAIL
} from 'services/actionTypes'

const initialState: UserState = [];

export default Reducer(initialState, {
    [GET_USER_DATA_REQUEST]: () => null,
    [GET_USER_DATA_SUCCESS]: (state, action) => ({
        ...state,
        data: action.users
    }),
    [GET_USER_DATA_FAIL]: (state, action) => ({
        ...state,
        error: action.error
    })
});

create actions with payload

You can also create actions with payload field. To do this just import action creator from with-payload namespace

import {buildActionCreator} from 'redux-util/with-payload'
import {buildGenericActionCreator} from 'redux-util/with-payload'

const LOAD_DATA = 'LOAD_DATA';
export const loadDataAction = buildActionCreator(LOAD_DATA, 'data');
// .....
dispatch(loadDataAction([1,2,3]))
/*
    {
        type: 'LOAD_DATA',
        payload: {
            data: [1,2,3]
        }
    }
 */

Keywords

FAQs

Last updated on 21 Apr 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc