Fixed route analysis warnings

This commit is contained in:
thomashii@dukefirehawk.com 2022-08-17 11:21:47 +08:00
parent 5402fa55a9
commit f00d3916f6
2 changed files with 10 additions and 10 deletions

View file

@ -86,8 +86,8 @@ class Router<T> {
/// by the resulting router. /// by the resulting router.
/// ///
/// The resulting router can be chained, too. /// The resulting router can be chained, too.
_ChainedRouter<T> chain(Iterable<T> middleware) { ChainedRouter<T> chain(Iterable<T> middleware) {
var piped = _ChainedRouter<T>(this, middleware); var piped = ChainedRouter<T>(this, middleware);
var route = SymlinkRoute<T>('/', piped); var route = SymlinkRoute<T>('/', piped);
_routes.add(route); _routes.add(route);
return piped; return piped;
@ -412,13 +412,13 @@ class Router<T> {
} }
} }
class _ChainedRouter<T> extends Router<T> { class ChainedRouter<T> extends Router<T> {
final List<T> _handlers = <T>[]; final List<T> _handlers = <T>[];
Router _root; Router _root;
_ChainedRouter.empty() : _root = Router(); ChainedRouter.empty() : _root = Router();
_ChainedRouter(this._root, Iterable<T> middleware) { ChainedRouter(this._root, Iterable<T> middleware) {
_handlers.addAll(middleware); _handlers.addAll(middleware);
} }
@ -434,7 +434,7 @@ class _ChainedRouter<T> extends Router<T> {
@override @override
SymlinkRoute<T> group(String path, void Function(Router<T> router) callback, SymlinkRoute<T> group(String path, void Function(Router<T> router) callback,
{Iterable<T> middleware = const [], String? name}) { {Iterable<T> middleware = const [], String? name}) {
final router = _ChainedRouter<T>(_root, [..._handlers, ...middleware]); final router = ChainedRouter<T>(_root, [..._handlers, ...middleware]);
callback(router); callback(router);
return mount(path, router)..name = name; return mount(path, router)..name = name;
} }
@ -443,7 +443,7 @@ class _ChainedRouter<T> extends Router<T> {
Future<SymlinkRoute<T>> groupAsync( Future<SymlinkRoute<T>> groupAsync(
String path, FutureOr<void> Function(Router<T> router) callback, String path, FutureOr<void> Function(Router<T> router) callback,
{Iterable<T> middleware = const [], String? name}) async { {Iterable<T> middleware = const [], String? name}) async {
final router = _ChainedRouter<T>(_root, [..._handlers, ...middleware]); final router = ChainedRouter<T>(_root, [..._handlers, ...middleware]);
await callback(router); await callback(router);
return mount(path, router)..name = name; return mount(path, router)..name = name;
} }
@ -457,8 +457,8 @@ class _ChainedRouter<T> extends Router<T> {
} }
@override @override
_ChainedRouter<T> chain(Iterable<T> middleware) { ChainedRouter<T> chain(Iterable<T> middleware) {
final piped = _ChainedRouter<T>.empty().._root = _root; final piped = ChainedRouter<T>.empty().._root = _root;
piped._handlers.addAll([..._handlers, ...middleware]); piped._handlers.addAll([..._handlers, ...middleware]);
var route = SymlinkRoute<T>('/', piped); var route = SymlinkRoute<T>('/', piped);
_routes.add(route); _routes.add(route);

View file

@ -6,7 +6,7 @@ void main() {
var router = Router()..get('/a/:a/b/:b', ''); var router = Router()..get('/a/:a/b/:b', '');
var encoded = var encoded =
'/a/' + Uri.encodeComponent('<<<') + '/b/' + Uri.encodeComponent('???'); '/a/${Uri.encodeComponent('<<<')}/b/${Uri.encodeComponent('???')}';
print(encoded); print(encoded);
var result = router.resolveAbsolute(encoded).first; var result = router.resolveAbsolute(encoded).first;
print(result.allParams); print(result.allParams);