Skip to content

✨ Allow sorting middleware#696

Open
alecgibson wants to merge 1 commit intomasterfrom
middleware-order
Open

✨ Allow sorting middleware#696
alecgibson wants to merge 1 commit intomasterfrom
middleware-order

Conversation

@alecgibson
Copy link
Collaborator

At the moment middleware is executed in the order that it is registered.

This is fine if middleware is only registered in a single place, but in distributed setups, there may be multiple places in code (possibly across repos) that consumers may want to register middleware.

In order to allow some distributed way of defining an execution order of middlewares, this is a non-breaking change that lets consumers define an order for their middleware when registering:

backend.use('commit', fn, 10);

This order will be used to sort the middlewares, such that higher order execute after middleware with lower order. Ties are broken on registration order (the current behaviour), since JavaScript's .sort() is stable.

The default value for order is 0, so if consumers want to run middleware before other middleware that has not specified an order, they will need to set a negative order (which is legal):

backend.use('commit', fn, -10);

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant