
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@enkidevs/redux-meta-object-to-axios-request
Advanced tools
Redux middleware to transform a special meta object into an axios promise
Redux middleware to transform a specific object into a promise-returning axios request.
npm install --save @enkidevs/redux-meta-object-to-axios-request
Import the middleware creator and include it in applyMiddleware when creating the Redux store.
import { applyMiddleware, createStore } from 'redux';
import reduxMetaObjectToAxiosRequest from 'redux-meta-object-to-axios-request';
const middlewares = [
// ...other middleware
// create the reduxMetaObjectToAxiosRequest middleware
reduxMetaObjectToAxiosRequest({
// optional global axios options applied to every request
axiosOptions: {
timeout: 300
},
// require token options with the storage
// the storage key name is optional and will default to 'redux-meta-object-to-axios-request-token-key'
tokenOptions: {
storage = window.localStorage,
key = 'token-key'
}
})
// ...other middleware
]
const createStoreWithMiddleware = applyMiddleware(...middlewares)(createStore);
To use the middleware, dispatch a promise property within the meta of the action.
Example:
The below action creator, when triggered dispatch(addTodoActionCreator('use redux-meta-object-to-axios-request'))
export function addTodoActionCreator(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 { applyMiddleware, createStore } from 'redux';
import { AsyncStorage } from 'react-native'
import reduxMetaObjectToAxiosRequest from 'redux-meta-object-to-axios-request';
const middleware = [
// ...other middleware
reduxMetaObjectToAxiosRequest({
tokenOptions: {
storage: AsyncStorage
}
})
// ...other middleware
]
const createStoreWithMiddleware = applyMiddleware(...middlewares)(createStore);
saveToken flag:export function loginActionCreator({ username, password }) {
return {
type: "LOGIN",
meta: {
promise: {
url: "/login",
method: "post",
saveToken: true, // signal to the middleware to save the token in the storage
data: {
username,
password
}
}
}
};
}
removeToken flag:export function logoutActionCreator({ username, password }) {
return {
type: "LOGOUT",
meta: {
promise: {
url: "/logout",
method: "post",
removeToken: true, // signal to the middleware to remove the token from the storage
}
}
};
}
authenticated flag:export function authRequestActionCreator({ username, password }) {
return {
type: "AUTH_REQUEST",
meta: {
promise: {
url: "/auth-route",
method: "get",
authenticated: true, // signal to the middleware to send the stored token along with the request
}
}
};
}
{ wait: Number, leading: Boolean, trailing: Boolean }:export function searchActionCreator(text) {
return {
type: "SEARCH",
meta: {
promise: {
url: "/search",
method: "get",
// signal to the middleware to debounce the request after 300ms
debounce: 300,
// or (same as above)
debounce: {
wait: 300,
trailing: true
},
// or you can also use leading debounce
debounce: {
wait: 300,
leading: true
}
}
}
};
}
export function uploadImageActionCreator({ data, onUploadProgress }) {
return {
type: "UPLOAD_IMAGE",
meta: {
promise: {
method: "post",
url: "/upload-image",
data,
headers: {
'Content-Type': 'multipart/form-data',
},
onUploadProgress, // propagate onUploadProgress to axios
}
}
};
}
MIT
FAQs
Redux middleware to transform a special meta object into an axios promise
We found that @enkidevs/redux-meta-object-to-axios-request demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 14 open source maintainers collaborating on the project.
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.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.