@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
30 lines • 1.06 kB
JavaScript
import { handleError } from "../utils/handleError";
import { isDevelopment } from "../utils/env";
// Error handling middleware for Redux actions
export const errorMiddleware = (store) => (next) => (action) => {
try {
return next(action);
}
catch (error) {
handleError(error, `Redux action failed: ${action.type}`);
throw error;
}
};
// Selective logger middleware for development - only logs important actions
export const loggerMiddleware = (store) => (next) => (action) => {
const result = next(action);
// Only log failed API calls and errors in development
if (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;
};
// Combine all custom middleware
export const customMiddleware = [
errorMiddleware,
...(isDevelopment() ? [loggerMiddleware] : [])
];
//# sourceMappingURL=middleware.js.map