Skip to content

Higher-order Redux reducer which resets state to original reducer's initial state

License

Notifications You must be signed in to change notification settings

CyberInt/redux-reset-reducer

Repository files navigation

redux-reset-reducer

Higher-order Redux reducer which resets state to original reducer's initial state

Usage

Install via NPM

npm install redux-reset-reducer --save

Import

import reset from 'redux-reset-reducer'; 
// or
var reset = require('redux-reset-reducer');

If you need ES6 module

import reset from 'redux-reset-reducer/es6';

Use this if you are using rollup.js or webpack 2, or any ES2015 modules-compatible bundler which can eliminate unused library code with tree-shaking.

It is recommended to import the library from redux-reset-reducer/es6 instead of redux-reset-reducer/src because the source code depends on experimental presets from babel (stage 1-3) and may be incompatible with your bundler or settings.

Other environments

Use the Universal Module Definition (UMD)

API

reset(
  options: {
    actionCheck: String | String[] | (state: any, action: Object) => boolean,
    initialState: ?any | (state: any, action: Object) => any
  }
): (reducer) => reducer

Creates a higher-order reducer which resets state of base reducer.

If initialState is provided, then state will be reset to it, otherwise base reducer will be invoked with undefined as current state, so it will reset state to its defaults (base reducer must return initial state when passed state is undefined). initialState can be function, in such a case it will be invoked in order to generate state, based on current state and action.

If actionCheck is action type or array of action types, then state will be reset when action with one of the provided types occurs. If actionCheck is function, then state will be reset when this function returns truthy value, based on current state and action.

Comparison with other libraries.

There are at least two similar projects: redux-reset by Abhi Aiyer and redux-recycle by Daniel Bugl. Both of these projects are good, but provide less flexible and extensive API than redux-reset-state, therefore support less amount of use cases, so choose what you need :)

About

Higher-order Redux reducer which resets state to original reducer's initial state

Resources

License

Stars

Watchers

Forks

Packages

No packages published