getBranchMiddleware<T> function

Middleware<T> getBranchMiddleware<T>(
  1. dynamic condition,
  2. Middleware<T> trueMiddleware,
  3. Middleware<T> falseMiddleware
)

By condition splits the middleware

Implementation

Middleware<T> getBranchMiddleware<T>(
  condition,
  Middleware<T> trueMiddleware,
  Middleware<T> falseMiddleware,
) {
  branchMiddlewareCondition<T>(condition);
  if (condition is! Function) {
    return condition as bool ? trueMiddleware : falseMiddleware;
  }

  return (context, next) async {
    // ignore: avoid_dynamic_calls
    if (await condition(context) as bool) {
      trueMiddleware(context, next);
    } else {
      falseMiddleware(context, next);
    }
  };
}