redux-storage-decorator-engines
npm i redux-storage-decorator-engines

redux-storage-decorator-engines

Composing decorator for redux-storage to use different storage types

by allegro

1.0.7 (see all)License:Apache-2.0TypeScript:Not Found
npm i redux-storage-decorator-engines
Readme

redux-storage-decorator-engines

Composing decorator for redux-storage to use different storage types like redux-storage-engine-localstorage or redux-storage-engine-sessionstorage including custom engines (i.e. to load information from cookies) in a single application.

Installation

npm install --save redux-storage-decorator-engines

Usage

Along with redux-storage-decorator-filter you can define different persistence policy for each part of a state. Simply create the stores as you normally would do and wrap them with the decorator.

import engines from 'redux-storage-decorator-engines';
import filter from 'redux-storage-decorator-filter';
import createLocalStorageEngine from 'redux-storage-engine-localstorage';
import createSessionStorageEngine from 'redux-storage-engine-sessionstorage';

const localStorageEngine = filter(createLocalStorageEngine('redux'), ['todos']);
const sessionStorageEngine = filter(createSessionStorageEngine('redux'), ['visibilityFilter']);

const storageEngine = engines([
  localStorageEngine,
  sessionStorageEngine
]);

To include information from a cookie in a redux state for later easy access simply provide a custom storage engine:

import Cookies from 'js-cookie';

const cookieStorage = {
  load() {
    const state = {
      cookie: Cookies.get('cookie')
    };
    return Promise.resolve(state);
  },
  save() {
    return Promise.resolve();
  }
};

const storageEngine = engines([
  localStorageEngine,
  sessionStorageEngine,
  cookieStorage
]);

NOTE: If the same state key is loaded from more than one storage engine an application state upon load is not deterministic. A final state depends on the actual order of the loads. In such a case a warning message is emitted on non-production environments (an environment is considered a production if NODE_ENV is set to production).

License

redux-storage-decorator-engines is published under Apache License 2.0.

Downloads/wk

222

GitHub Stars

15

LAST COMMIT

2yrs ago

MAINTAINERS

1

CONTRIBUTORS

6

OPEN ISSUES

0

OPEN PRs

0
VersionTagPublished
1.0.7
latest
6yrs ago
No alternatives found
No tutorials found
Add a tutorial