resolveMiddleware method
Resolves aliases into instances. Called by Router.compile.
Implementation
void resolveMiddleware(MiddlewareRegistry registry) {
final types = <Type>{};
final instances = <Middleware>{};
for (final entry in _excluded) {
if (entry is Type) {
types.add(entry);
continue;
}
for (final middleware in registry.resolve(entry)) {
// Closures all share one type, so they go by identity.
if (middleware is FunctionalMiddleware) {
instances.add(middleware);
} else {
types.add(middleware.runtimeType);
}
}
}
_resolved = List.unmodifiable(
registry
.resolveAll(_middleware)
.where(
(m) => !types.contains(m.runtimeType) && !instances.contains(m),
),
);
_withBindings = null;
}