@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
35 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.customMiddleware = exports.loggerMiddleware = exports.errorMiddleware = void 0;
const handleError_1 = require("../utils/handleError");
const env_1 = require("../utils/env");
// Error handling middleware for Redux actions
const errorMiddleware = (store) => (next) => (action) => {
try {
return next(action);
}
catch (error) {
(0, handleError_1.handleError)(error, `Redux action failed: ${action.type}`);
throw error;
}
};
exports.errorMiddleware = errorMiddleware;
// Selective logger middleware for development - only logs important actions
const loggerMiddleware = (store) => (next) => (action) => {
const result = next(action);
// Only log failed API calls and errors in development
if ((0, env_1.isDevelopment)() && action.type.includes('/rejected')) {
console.group(`❌ Redux Action Failed: ${action.type}`);
console.log('Error:', action.payload);
console.log('Action:', action);
console.groupEnd();
}
return result;
};
exports.loggerMiddleware = loggerMiddleware;
// Combine all custom middleware
exports.customMiddleware = [
exports.errorMiddleware,
...((0, env_1.isDevelopment)() ? [exports.loggerMiddleware] : [])
];
//# sourceMappingURL=middleware.js.map