getBranchMiddleware<T> function
- dynamic condition,
- Middleware<
T> trueMiddleware, - Middleware<
T> falseMiddleware
By condition splits the middleware
Example:
getBranchMiddleware(
(context) => context.type == 'json',
myBodyParser.json(),
myBodyParser.urlencoded(),
);
Static condition
getBranchMiddleware(
String.fromEnvironment('SOME_VAR') == 'SOME_VALUE',
logger.loggedContextToFile(),
logger.loggedContextToConsole(),
);
Implementation
Middleware<T> getBranchMiddleware<T>(
condition,
Middleware<T> trueMiddleware,
Middleware<T> falseMiddleware,
) {
BranchMiddlewareCondition(condition);
if (condition is! Function) {
return condition ? trueMiddleware : falseMiddleware;
}
return (T context, FutureOr<void> Function() next) async {
await condition(context)
? trueMiddleware(context, next)
: falseMiddleware(context, next);
};
}