@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
43 lines • 1.83 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.customMiddleware = exports.loggerMiddleware = exports.errorMiddleware = void 0;
var handleError_1 = require("../utils/handleError");
var env_1 = require("../utils/env");
// Error handling middleware for Redux actions
var errorMiddleware = function (store) { return function (next) { return function (action) {
try {
return next(action);
}
catch (error) {
(0, handleError_1.handleError)(error, "Redux action failed: ".concat(action.type));
throw error;
}
}; }; };
exports.errorMiddleware = errorMiddleware;
// Selective logger middleware for development - only logs important actions
var loggerMiddleware = function (store) { return function (next) { return function (action) {
var result = next(action);
// Only log failed API calls and errors in development
if ((0, env_1.isDevelopment)() && action.type.includes('/rejected')) {
console.group("\u274C Redux Action Failed: ".concat(action.type));
console.log('Error:', action.payload);
console.log('Action:', action);
console.groupEnd();
}
return result;
}; }; };
exports.loggerMiddleware = loggerMiddleware;
// Combine all custom middleware
exports.customMiddleware = __spreadArray([
exports.errorMiddleware
], ((0, env_1.isDevelopment)() ? [exports.loggerMiddleware] : []), true);
//# sourceMappingURL=middleware.js.map