composeMiddleware function
Folds middleware around handler, outermost first: the first element
sees the request first and the response last.
Implementation
DianaHandler composeMiddleware(
List<Middleware> middleware,
DianaHandler handler,
) {
var composed = handler;
for (final m in middleware.reversed) {
final next = composed;
composed = (request) => m.handle(request, next);
}
return composed;
}