parseRouteInformation method

Future<AppRoute> parseRouteInformation(
  1. RouteInformation routeInformation
)

Implementation

Future<AppRoute> parseRouteInformation(RouteInformation routeInformation) async {
  final uri = Uri.tryParse(routeInformation.location ?? '')?.path ?? '';
  final paths = _getPaths(uri, home: _homePath);
  if(paths.isEmpty) {
    print('route not found: $uri');
    return notFoundRoute;
  }
  final data = _getData(paths.join(), uri);
  if(paths.length == 1) {
    return _getDefinition(paths[0])!.parse(data);
  } else {
    var route;
    for(var i = 0; i < paths.length; i++) {
      route = _findDefinition(this, paths.sublist(0, i + 1)).parse(data)..parent = route;
    }
    return route;
  }
}