awral

1.2.1 • Public • Published

AWRAL

Greenkeeper badge

Awesome Wrapper for Redux Action's Lifecycle

Swiss Army knife for async actions in Redux.

Why?

Assume you're using redux and redux-thunk.

README IN PROGRESS.

PLEASE, CHECK SOURCES!

When you work with async stuff you probably have next code in your container:

const mapDispatchToProps = dispatch => ({
    getUser (id) {
        dispatch(GET_USER(id))
    }
})

Where GET_USERS is a next async action:

export const GET_USER = id => async dispatch => {
    dispatch({type: 'GET_USER_PENDING'})
    const payload = await getUserFromServer(id)
    if (resultOK(payload)) {
        dispatch({type: 'GET_USER_SUCCESS', payload})
    } else {
        dispatch({type: 'GET_USER_FAIL', payload, error:true})
    }
    dispatch({type: 'GET_USER_FINALLY', payload})
}
 

With AWRAL you can just write:

const GET_USER = awral(getUserFromServer)('GET_USER')

How?

There is only one method: Awral.of(). of() allows you to extend/rewrite your "awrals":

import Awral from 'awral'
const checkResponseFromAPI = (result) => result.ok
const transformResultAfter = (result) => result.data
// const success = ({dispatch, payload}) => {}
 
const awralCheck = Awral.of({check: checkResponseFromAPI})
const awralCheckTransformBefore = awralCheck.of({})
const awral = Awral.of(check: checkResponseFromAPI)
 

Package Sidebar

Install

npm i awral

Weekly Downloads

4

Version

1.2.1

License

MIT

Last publish

Collaborators

  • metnew