{"id":18734,"library":"redux-storage-middleware","title":"Redux Storage Middleware","description":"Redux Storage Middleware is a lightweight middleware for Redux that persists state to storage backends (e.g., localStorage) and rehydrates it on app load. Current stable version is 1.1.292. It is maintained by sequencemedia and requires Node >=18.12.0. It distinguishes itself from alternatives like redux-persist by being minimal, with no built-in transforms or migrations, and relies on the storage engine provided by the developer.","status":"active","version":"1.1.292","language":"javascript","source_language":"en","source_url":"https://github.com/sequencemedia/redux-storage-middleware","tags":["javascript"],"install":[{"cmd":"npm install redux-storage-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add redux-storage-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add redux-storage-middleware","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM only; default export is the middleware function.","wrong":"const storageMiddleware = require('redux-storage-middleware').default","symbol":"default","correct":"import storageMiddleware from 'redux-storage-middleware'"},{"note":"Named export for creating a storage engine; also ESM only.","wrong":"const { createStorage } = require('redux-storage-middleware')","symbol":"createStorage","correct":"import { createStorage } from 'redux-storage-middleware'"},{"note":"TypeScript type import; not a runtime value.","wrong":"import { StorageMiddlewareConfig } from 'redux-storage-middleware'","symbol":"StorageMiddlewareConfig","correct":"import type { StorageMiddlewareConfig } from 'redux-storage-middleware'"}],"quickstart":{"code":"import storageMiddleware from 'redux-storage-middleware';\nimport { createStore, applyMiddleware } from 'redux';\n\nconst storageEngine = {\n  getItem: (key) => Promise.resolve(localStorage.getItem(key)),\n  setItem: (key, value) => Promise.resolve(localStorage.setItem(key, value)),\n  removeItem: (key) => Promise.resolve(localStorage.removeItem(key)),\n};\n\nconst middleware = storageMiddleware({\n  engine: storageEngine,\n  key: 'my-app-state',\n  serialize: JSON.stringify,\n  deserialize: JSON.parse,\n});\n\nconst store = createStore(rootReducer, applyMiddleware(middleware));","lang":"typescript","description":"Configures and applies redux-storage-middleware with a localStorage engine and custom serialization."},"warnings":[{"fix":"Use import syntax and ensure your project is ESM or use a dynamic import.","message":"ESM only since v1.0.0; require() will not work.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Ensure storageMiddleware is first in the middleware chain.","message":"Middleware must be applied before any other middleware that depends on state being persisted.","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Wrap sync operations in Promise.resolve() or use an async storage library.","message":"The storage engine must return Promises; synchronous engines like sync localStorage will cause errors if used directly.","severity":"gotcha","affected_versions":">=0.0.1"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run npm install redux-storage-middleware","cause":"Package not installed or not in node_modules.","error":"Cannot find module 'redux-storage-middleware'"},{"fix":"Ensure the engine object has getItem, setItem, removeItem functions.","cause":"Provided engine does not implement the required interface.","error":"The engine must be an object with getItem, setItem, removeItem methods"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}