runInterceptor method
Implementation
Future<InterceptorResult> runInterceptor(InterceptorContext context) async {
_resetPriority();
if (_list.isEmpty) {
return InterceptorResult(status: RouterRunInterceptorResultStatus.pass);
}
for (var interceptor in _list) {
var result = await interceptor.doDecision(context);
switch (result.status) {
case RouterRunInterceptorResultStatus.pass:
continue;
case RouterRunInterceptorResultStatus.switched:
return InterceptorResult.switched(
url: result.url,
builder: result.builder,
params: result.params,
);
case RouterRunInterceptorResultStatus.rejected:
if (result.error == null) {
assert(result.error != null);
throw 'error should not be null';
}
return InterceptorResult.rejected(result.error!);
default:
assert(false);
}
}
return InterceptorResult.pass();
}