passThrough method

Future passThrough(
  1. IRequest request,
  2. IRequestHandler<IRequest, dynamic> requestHandler
)

The function that gets called from Mediator in order to pass the IRequest thought the middlewares

Implementation

Future passThrough(
  IRequest request,
  IRequestHandler requestHandler,
) async {
  Future runner(index) async {
    if (index == middlewares.length) {
      return requestHandler(request);
    }
    final m = middlewares[index];
    return m.process(
      request,
      (req) async => runner(index + 1),
    );
  }

  return runner(0);
}