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)
 

/awral/

    Package Sidebar

    Install

    npm i awral

    Weekly Downloads

    17

    Version

    1.2.1

    License

    MIT

    Last publish

    Collaborators

    • metnew