Filter transformator for reduxjs-toolkit-persist
npm install reduxjs-toolkit-persist-transform-filter
import { createFilter, createBlacklistFilter } from 'reduxjs-toolkit-persist-transform-filter';
// this works too:
import createFilter, { createBlacklistFilter } from 'reduxjs-toolkit-persist-transform-filter';
// you want to store only a subset of your state of reducer one
const saveSubsetFilter = createFilter(
'myReducerOne',
['keyYouWantToSave1', 'keyYouWantToSave2']
);
// you want to remove some keys before you save
const saveSubsetBlacklistFilter = createBlacklistFilter(
'myReducerTwo',
['keyYouDontWantToSave1', 'keyYouDontWantToSave2']
);
// you want to load only a subset of your state of reducer three
const loadSubsetFilter = createFilter(
'myReducerThree',
null,
['keyYouWantToLoad1', 'keyYouWantToLoad2']
);
// saving a subset and loading a different subset is possible
// but doesn't make much sense because you'd load an empty state
const saveAndloadSubsetFilter = createFilter(
'myReducerFour',
['one', 'two']
['three', 'four']
);
const predicateFilter = persistFilter(
'form',
[
{ path: 'one', filterFunction: (item: any): boolean => item.mustBeStored },
{ path: 'two', filterFunction: (item: any): boolean => item.mustBeStored },
],
'whitelist'
)
const normalPathFilter = persistFilter(
'form',
['one', 'two'],
'whitelist'
)
const persistConfig = ;
const persistedReducer = persistReducer(
{
key: "suffix",
... // another config options
transforms: [
saveSubsetFilter,
saveSubsetBlacklistFilter,
loadSubsetFilter,
saveAndloadSubsetFilter,
],
},
rootReducer, // your reducer object root
);
git clone https://github.com/sunertech/reduxjs-toolkit-persist-transform-filter-example.git
cd reduxjs-toolkit-persist-transform-filter-example
npm install
npm start