redux-duplicate-actions
v3.0.2
Published
This is a redux middleware that detects duplicate actions & shows this in the console. You can choose to make them fatal errors or friendly warnings! Development use only!
Downloads
125
Maintainers
Readme
Redux Duplicate Action Monitor
This is a redux middleware that detects duplicate actions & shows this in the console. Ideal for ensuring good redux practices. Development use only!
If there is a duplicate action you will see this in the browser console:
[redux-duplicate-actions] A duplicate action has been detected.
[redux-duplicate-actions] Unique action hash: e6d0f668
[redux-duplicate-actions] Unpacked action: {type: 'SET_DATA', payload: {…}}
[redux-duplicate-actions] Original action: {type: 'SET_DATA', payload: ƒ} // Read below
If your payload is a function the middleware we will attempt to unpack it and show you the actual data. It does this by simply running the function against store.getState()
. So effectively action.payload(store.getState())
. If this fails it will do the comparison as normal.
Supports Node 10.x +
Installation
Run this in the terminal:
npm install --save-dev redux-duplicate-actions
or
yarn add -D redux-duplicate-actions
Usage
Supported options:
fatal
(type: boolean) - if true
, will throw an error when a duplicate action is detected. Default is false
.
logLevel
(type: 'log' | 'warn' | 'error') - the level of logging to the console. Default is "warn"
.
payloadKey
(type: string) - the key to use to get the payload for the redux action. Default is "payload"
.
unpackPayloadIfFunction
(type: boolean) - if true, will attempt to unpack the payload if it is a function. Default is true
.
if (__DEV__) {
// To thrown fatal error on duplicate action
const reduxDuplicateActions = require("redux-duplicate-actions")({
fatal: true,
});
reduxMiddleware.push(reduxDuplicateActions);
// To log duplicate action as warning
const reduxDuplicateActions = require("redux-duplicate-actions")({
fatal: false
});
reduxMiddleware.push(reduxDuplicateActions);
}
Test
Run the following commands to test the module:
yarn install && yarn test
Contributing
All contributions are very welcome, please read my CONTRIBUTING.md first. You can submit any ideas as pull requests or as GitHub issues. If you'd like to improve code, please feel free!