redux-log-slow-reducers
Version:
Warn about slow reducers used in your redux app.
28 lines (23 loc) • 836 B
JavaScript
/* eslint no-console:0 */
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = logSlowReducers;
function logSlowReducers(reducers) {
var thresholdInMs = arguments.length <= 1 || arguments[1] === undefined ? 8 : arguments[1];
Object.keys(reducers).forEach(function (name) {
var originalReducer = reducers[name];
reducers[name] = function (state, action) {
var start = Date.now();
var result = originalReducer(state, action);
var diffInMs = Date.now() - start;
if (diffInMs >= thresholdInMs) {
console.warn('Reducer "' + name + '" took ' + diffInMs + 'ms for ' + action.type);
}
return result;
};
});
return reducers;
}
module.exports = exports['default'];