redux-aop
Aspect-Oriented Programming helpers for Redux middleware
npm install redux-aop
What is this?
This is a collection of helper functions (or "combinators") for common patterns in redux middleware. It borrows ideas and terminology from Aspect-Oriented programming, and may remind you of alias_method_chain
or before_action
in Ruby on Rails.
How do I use it?
Here's a simple logger:
const loggerMiddleware =
redux-thunk:
const thunkMiddleware =
An action debouncer:
const debounce = { let timeoutHook = null return }
Why does this exist?
As a low-level library, Redux is designed for maximum flexibility at the expense of convenience. This is perhaps most visible in middleware -- the store => next => action
function signature is great for complex middleware but overkill for many cases. The relative complexity of the middleware API discourages people from using it directly, instead relying on third-party libraries, even for simple tasks like logging and error reporting.
This library is significantly smaller in size and scope than effect-management libraries like redux-loop or redux-saga, but can improve the ergonomics of using the base middleware API directly such that those libraries might not be needed.
Is it any good?
Absolutely.