getLazyMiddleware<T> function

Middleware<T> getLazyMiddleware <T>(
  1. LazyMiddlewareFactory<T> middlewareFactory
)

Lazily asynchronously gets middleware

Example:

getLazyMiddleware((context) async {
  Future<Function> route = await getSomeRoute(context.path);

  return route;
});

Implementation

Middleware<T> getLazyMiddleware<T>(LazyMiddlewareFactory<T> middlewareFactory) {
  Middleware<T> middleware;

  return (T context, FutureOr<void> Function() next) async {
    middleware ??= await middlewareFactory(context);

    return middleware(context, next);
  };
}