create static method

GoRouter create({
  1. required Widget initialLocation,
  2. List<NavigatorObserver>? observers,
  3. FutureOr<Widget?> redirect(
    1. BuildContext,
    2. GoRouterState
    )?,
  4. required List<FiberRouteNode> nodes,
  5. Listenable? refreshListenable,
})

Implementation

static GoRouter create({
  required Widget initialLocation,
  List<NavigatorObserver>? observers,
  FutureOr<Widget?> Function(BuildContext, GoRouterState)? redirect,
  required List<FiberRouteNode> nodes,
  Listenable? refreshListenable,
}) {
  final controllerRouteNames = _collectControllerRouteNames(nodes);
  String pathFor(Widget widget) => '/${_routeNameFor(widget, controllerRouteNames)}';

  return GoRouter(
    initialLocation: pathFor(initialLocation),
    observers: [_fiberRouteObserver, ...?observers],
    refreshListenable: refreshListenable,
    redirect: (context, state) async {
      final result = await redirect?.call(context, state);
      if (result == null) return null;
      return pathFor(result);
    },
    debugLogDiagnostics: false,
    routes: _flatten(nodes, controllerRouteNames: controllerRouteNames),
  );
}