Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@domtwlee/redux-api-actions
Advanced tools
Redux middleware for dispatching api actions.
Standardises the way actions are handled for api calls and cuts down on boilerplate.
npm install @domtwlee/redux-api-actions
To enable apiActions:
import { createStore, applyMiddleware } from 'redux';
import { apiActions } from '@domtwlee/redux-api-actions';
import rootReducer from './reducers/index';
const store = createStore(
rootReducer,
applyMiddleware(apiActions)
);
Dispatch an action suffixed with "REQUEST" in its type and add the relevant apiCall field in meta to trigger the middleware.
export const getConsumersRequest = (roleType: string) => ({
type: "GET_TODOS_REQUEST",
meta: {
apiCall: () => fetch('example.com/todos'),
},
});
You can use whatever promise-based API for fetching resources.
This will automatically generate GET_TODO_SUCCESS
and GET_TODO_FAILURE
action types, and dispatch the appropriate action upon resolve/reject of the fetch promise.
All the actions objects follow flux-standard-actions https://github.com/redux-utilities/flux-standard-action.
A utility function is included to generate the appropriate action types that you can then use for your actions/reducers.
const [
GET_TODOS_REQUEST,
GET_TODOS_SUCCESS,
GET_TODOS_FAILURE,
] = createAsyncActionTypes('consumers', 'GET_CONSUMERS');
// Returns ['consumers/GET_TODOS_REQUEST', 'consumers/GET_TODOS_SUCCESS', 'consumers/GET_TODOS_FAILURE']
function todoReducer(state = initialState, action) {
switch (action.type) {
case GET_TODO_REQUEST: {
return {
...state,
loading: true,
};
}
case GET_TODO_SUCCESS: {
return {
...state,
loading: false,
todos: action.payload,
};
}
case GET_TODO_FAILURE: {
return {
...state,
loading: false,
error: action.payload,
};
}
default:
return state;
}
}
Finally, you have the option to include a normalizr schema to shape the json response from your fetch before the success action is dispatched. https://github.com/paularmstrong/normalizr
import { schema } from 'normalizr';
const todoSchema = new schema.Entity('todos', {}, { idAttribute: 'todoId' });
const todoListSchema = [todoSchema];
export const getConsumersRequest = (roleType: string) => ({
type: "GET_TODOS_REQUEST",
meta: {
apiCall: () => fetch('example.com/todos'),
schema: todoListSchema,
},
});
This project is licensed under the MIT License - see the LICENSE.md file for details
FAQs
Redux middleware for dispatching api actions
The npm package @domtwlee/redux-api-actions receives a total of 10 weekly downloads. As such, @domtwlee/redux-api-actions popularity was classified as not popular.
We found that @domtwlee/redux-api-actions demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.