Registry / storage / redux-storage-merger-immutablejs

redux-storage-merger-immutablejs

JSON →
library1.0.5jsnpmunverified

ImmutableJS compatible merger for redux-storage that merges plain state with Immutable.js.Map/List state. Version 1.0.5 is the latest stable release, last updated in 2016. This package is a fork of the original by michaelcontento, now maintained by react-stack. It provides a simple merger function for use with redux-storage's reducer to handle ImmutableJS objects, unlike the default plain object merger. Essential for projects using redux-storage with ImmutableJS.

npm install redux-storage-merger-immutablejs
INSTALL
IMPORT
SIG · REDUX-STORAGE-MERG
R
redux-storage-merger-immutablejs
storagejavascriptv1.0.5
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import merger from 'redux-storage-merger-immutablejs';
const merger = require('redux-storage-merger-immutablejs');
Default export is the merger function.
any named
import { default as merger } from 'redux-storage-merger-immutablejs';
No named exports; only default export.
CommonJS
const merger = require('redux-storage-merger-immutablejs');
const { merger } = require('redux-storage-merger-immutablejs');
CommonJS require works, but destructuring will fail as there is no named export.

Shows how to use redux-storage-merger-immutablejs with redux-storage and ImmutableJS. The merger ensures proper merging of ImmutableJS state during loading.

import { createStore, applyMiddleware } from 'redux'; import * as storage from 'redux-storage'; import createEngine from 'redux-storage-engine-localstorage'; import merger from 'redux-storage-merger-immutablejs'; import Immutable from 'immutable'; const initialState = Immutable.Map({ todos: Immutable.List() }); function reducer(state = initialState, action) { switch (action.type) { case 'ADD_TODO': return state.update('todos', todos => todos.push(action.text)); default: return state; } } const engine = createEngine('my-app'); const storageMiddleware = storage.createMiddleware(engine); const finalReducer = storage.reducer(reducer, merger); createStore(finalReducer, undefined, applyMiddleware(storageMiddleware)); // Load persisted state storage.createLoader(engine)(finalReducer).then(newState => console.log('Loaded!'));
Debug
Known issues
deprecatedPackage is deprecated; original author abandoned. Use redux-persist with ImmutableJS support instead.
fix
Migrate to redux-persist with redux-persist-immutable or similar.
affects: all
breakingRequires immutable >=3.8.1; incompatible with older immutable versions.
fix
Update immutable to version >=3.8.1.
affects: >=1.0.0
gotchaOnly works with redux-storage (not redux-persist). Do not use with redux-persist.
fix
Use redux-persist-immutable for redux-persist projects.
affects: all
gotchaMerger function does not handle deeply nested Immutable structures; only Merges root-level Map/List.
fix
Custom merge for deep nesting required.
affects: all
breakingThe package has not been updated since 2016; may have security vulnerabilities in dependencies.
fix
Audit dependencies and consider migration.
affects: >=1.0.0
Errors
Common errors & fixes
TypeError: merger is not a function
Using destructured import when only default export exists.
fix
Use const merger = require('redux-storage-merger-immutablejs'); or import merger from '...'.
Cannot read property 'merge' of undefined
ImmutableJS not installed or not correctly imported.
fix
Ensure immutable is installed and Immutable.Map/List is used in state.
Module not found: Can't resolve 'immutable'
Missing dependency immutable.
fix
npm install immutable --save
Reducer received undefined state after load
Merger not passed to storage.reducer.
fix
Pass merger as second argument to storage.reducer(reducer, merger).
Upgrade
Version history
1.0.5latest on npm
Audit
Dependencies
immutablerequiredRequired for merging ImmutableJS objects
Agent activity
18 hits · last 30 days
node
16
Amazon
1
Resources
redux-storage-merger-immutablejs — npm install redux-storage-merger-immutablejs · libregistry