Package Exports
- @piotr-cz/redux-persist-idb-storage
- @piotr-cz/redux-persist-idb-storage/dist/redux-persist-idb-storage.es.js
- @piotr-cz/redux-persist-idb-storage/dist/redux-persist-idb-storage.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@piotr-cz/redux-persist-idb-storage) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Redux Persist adapter for IndexedDB storage
Storage adapter to use IndexedDB via idb v3 with redux-persist ripped from idb v3 docs > Examples section
Installation
Using npm:
npm install --save @piotr-cz/redux-persist-idb-storage
or Yarn:
yarn add @piotr-cz/redux-persist-idb-storage
Requirements
- Promise support/ polyfill
Setup
Import the storage and include it in persistConfig
when creating Redux store:
// configureStore.js
// Using CommonJS modules
import createIdbStorage from '@piotr-cz/redux-persist-idb-storage'
// Or using ES6 modules
import createIdbStorage from '@piotr-cz/redux-persist-idb-storage/src'
const persistConfig = {
key: 'root',
storage: createIdbStorage({name: 'myApp', storeName: 'keyval'}),
serialize: false, // Data serialization is not required and disabling it allows you to inspect storage value in DevTools
}
// ...
Server-Side Rendering
When using Server-Side Rendering (SSR), indexedDB won't be available in the environment.
In this case you may use feature detection with a fallback to use default redux-persist storage (which resolves to noop functions):
// configureStore.js
// Redux Persist storage
import defaultStorage from 'redux-persist/lib/storage'
// IndexedDB storage
import createIdbStorage from '@piotr-cz/redux-persist-idb-storage/src'
const persistConfig = {
key: 'root',
storage: globalThis.indexedDB ? createIdbStorage({name: 'myApp', storeName: 'keyval'}) : defaultStorage,
serialize: false,
}
Options
See idb API
name
(optional): IndexedDB Database name. Defaults to'keyval-store'
.storeName
(optional): IndexedDB Store name. Defaults to'keyval'
.version
(optional): Schema version. Defaults to1
.upgradeCallback
(optional): Defaults toupgradeDb => upgradeDb.createObjectStore(options.storeName)
.