Redux middleware middleware to transform an object into a promise.
npm install --save redux-object-to-promise
First, import the middleware creator and include it in applyMiddleware
when creating the Redux store. You need to call it as a function (See later why on configuration section below):
import middleware from 'redux-object-to-promise';
composeStoreWithMiddleware = applyMiddleware(
middleware({
keyIn = 'promise',
keyOut = 'promise',
axiosOptions = {},
tokenOptions = { storage = window.localStorage, key = 'token-key' }
})
)(createStore);
To use the middleware, dispatch a promise
property within the meta
of the action.
Example:
The below action creator, when triggered dispatch(addTodo('use redux-object-to-promise'))
export function addTodo (text) {
return {
type: 'ADD_TODO',
payload: {
text
},
meta: {
promise: { url: '/todo', method: 'post', data: { text } },
}
}
}
will dispatch
{
type: 'ADD_TODO',
payload: {
text: 'use redux-optimist-promise'
},
promise: axiosPromise({ url: '/todo', method: 'post', data: { text } })
}
import { AsyncStorage } from 'react-native'
import middleware from 'redux-object-to-promise'
composeStoreWithMiddleware = applyMiddleware(
middleware({
tokenOptions: {
storage: AsyncStorage
}
})
)(createStore);
MIT