registerAppRouter<T extends BaseAppRouter> method

void registerAppRouter<T extends BaseAppRouter>(
  1. T? router, {
  2. bool enableNavigationLogs = true,
})

Registers the app router and navigator for navigation management

Parameters:

  • router: The router instance that extends BaseAppRouter
  • enableNavigationLogs: Controls whether navigation logs are printed to console
    • true: Navigation logs will be printed (default)
    • false: Navigation logs will be disabled

This method:

  1. Registers the router as a singleton
  2. Creates and registers an AppNavigator instance

Example:

void configureInjectionApp() {
  // With navigation logs enabled (default)
  getIt.registerAppRouter<AppRouter>(AppRouter());

  // With navigation logs disabled
  getIt.registerAppRouter<AppRouter>(AppRouter(), enableNavigationLogs: false);
}

Note: The router registration is skipped if it's already registered or if the provided router is null.

Implementation

void registerAppRouter<T extends BaseAppRouter>(
  T? router, {
  bool enableNavigationLogs = true,
}) {
  try {
    if (router == null) {
      throw ArgumentError('Router cannot be null');
    }

    if (!isRegistered<T>()) {
      registerLazySingleton<BaseAppRouter>(() => get<T>());
      registerLazySingleton<AppNavigator>(
        () => AppNavigator(
          get<T>(),
          enableNavigationLogs: enableNavigationLogs,
        ),
      );
    }
  } catch (e) {
    throw 'Failed to register router: $e';
  }
}