composeMiddleware function

DianaHandler composeMiddleware(
  1. List<Middleware> middleware,
  2. DianaHandler handler
)

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;
}