@calvear/react-redux
Version:
Preconfigured Redux store initializer with Redux Saga, Redux Logger and Reselect for React SPA applications.
59 lines (51 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = createMiddleware;
var _redux = require("redux");
var _reduxSaga = _interopRequireDefault(require("redux-saga"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/**
* Redux middleware initializer.
*
* Initializes Saga with Redux Logger.
*
* @see https://redux-saga.js.org/
* @see https://github.com/LogRocket/redux-logger
*
* @summary Redux middleware initializer.
* @author Alvear Candia, Cristopher Alejandro <calvear93@gmail.com>
*
* Created at : 2020-07-26 13:45:06
* Last modified : 2021-03-09 20:20:00
*/
/**
* Generates a middleware conditionally
* by current debug mode.
*
* @param {boolean} debug - whether redux should load redux-logger.
*
* @returns {Array} middleware apply and run functions.
*/
function createMiddleware() {
var debug = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
// creates Saga middleware factory.
var saga = (0, _reduxSaga["default"])();
if (debug) {
var _require = require('redux-logger'),
createLogger = _require.createLogger;
var logger = createLogger({
duration: true,
timestamp: true,
diff: true,
collapsed: function collapsed(getState, action, logEntry) {
return !logEntry.error;
}
});
return [(0, _redux.applyMiddleware)(saga, logger), saga];
} else {
return [(0, _redux.applyMiddleware)(saga), saga];
}
}
//# sourceMappingURL=middleware.js.map