@rematch/immer
Version:
Redux-Immer v6 plugin for Rematch. Provides immutable ability for rematch.
26 lines (21 loc) • 723 B
JavaScript
import produce from 'immer';
function wrapReducerWithImmer(reducer) {
return function (state, payload) {
if (state === undefined) return reducer(state, payload);
return produce(state, function (draft) {
return reducer(draft, payload);
});
};
}
var immerPlugin = function immerPlugin(config) {
return {
onReducer: function onReducer(reducer, model) {
if (!config || !config.whitelist && !config.blacklist || config.whitelist && config.whitelist.includes(model) || config.blacklist && !config.blacklist.includes(model)) {
return wrapReducerWithImmer(reducer);
}
return undefined;
}
};
};
export { immerPlugin as default };
//# sourceMappingURL=immer.esm.js.map