Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
redux-loop-immutable
Advanced tools
ImmutableJS helpers for use with Redux Loop
Redux Loop Immutable requires redux-loop 4.1.0 or higher
npm install --save redux-loop-immutable
combineReducers(reducersMap)
This is simply an ImmutableJS-optimized version of the combineReducers
provided by core redux-loop.
Instead of the default state being a plain object, it is an Immutable.Map instance.
reducersMap: Object<string, ReducerFunction>
– a plain object map of keys to nested
reducers, just like the combineReducers
you would find in Redux itself.import { combineReducers } from 'redux-loop-immutable';
import reducerWithSideEffects from './reducer-with-side-effects';
import plainReducer from './plain-reducer';
export default combineReducers({
withEffects: reducerWithSideEffects,
plain: plainReducer
});
mergeChildReducers(parentResult, action, childMap)
This is an ImmutableJS-optimized version of the mergeChildRedcuers
provided by core redux-loop.
Like that version of mergeChildReducers
, it is a more generalized version of combineReducers
that allows
you to nest reducers underneath a common parent that has functionality of its own (rather than restricting the parent to simply passing actions to its children like combineReducers
does)
parentResult: Immutable.Map | loop(Immutable.Map, Cmd)
– The result from the parent reducer before any child results have been applied.action: Action
– a redux actionchildMap: Object<string, ReducerFunction>
– a plain object map of keys to nested
reducers, similar to the map in combineReducers. However, a key can be given a value of null to have it removed from the state.import { mergeChildReducers } from 'redux-loop-immutable';
import {getModel, isLoop} from 'redux-loop';
import { fromJS } from 'immutable'
import pageReducerMap from './page-reducers';
// a simple reducer that keeps track of your current location and nests the correct
//child reducer for that location at state.data
const initialState = fromJS({
location: 'index'
//data will be filled in with the result of the child reducer
});
function parentReducer(state = initialState, action){
if(action.type !== 'LOCATION_CHANGE')
return state;
return state.set('location', action.newLocation);
}
export default function reducer(state, action){
const parentResult = parentReducer(state, action);
let location;
if(isLoop(parentResult))
location = getModel(parentResult).get('location');
else
location = parentResult.get('location');
const childMap = {data: pageReducerMap[location]};
return mergeChildReducers(parentResult, action, childMap);
}
Potential bugs, generally discussion, and proposals or RFCs should be submitted
as issues to this repo, we'll do our best to address them quickly. We use this
library as well and want it to be the best it can! For questions about using the
library, submit questions on StackOverflow
with the redux-loop
tag.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. Multiple language translations are available at contributor-covenant.org
FAQs
ImmutableJS Extensions for Redux Loop
The npm package redux-loop-immutable receives a total of 0 weekly downloads. As such, redux-loop-immutable popularity was classified as not popular.
We found that redux-loop-immutable 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’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.