createGoRouterTemplates method

  1. @override
Future<void> createGoRouterTemplates(
  1. String projectName
)
override

Implementation

@override
Future<void> createGoRouterTemplates(String projectName) async {
  // Create app_router.dart
  final routerFile = File(path.join(projectName, 'lib/routes/app_router.dart'));
  routerFile.writeAsStringSync(_generateAppRouterContent());

  // Check if Clean Architecture structure exists to determine page location
  final cleanArchPagesDir = Directory(path.join(projectName, 'lib/presentation/pages'));

  String pagesPath;
  if (cleanArchPagesDir.existsSync()) {
    // Clean Architecture structure exists, use presentation/pages
    pagesPath = 'lib/presentation/pages';
  } else {
    // Regular structure, use pages
    pagesPath = 'lib/pages';
  }

  // Create sample pages with Go Router navigation
  final homePageFile = File(path.join(projectName, '$pagesPath/home_page.dart'));
  homePageFile.writeAsStringSync(_generateHomePageContent());

  final aboutPageFile = File(path.join(projectName, '$pagesPath/about_page.dart'));
  aboutPageFile.writeAsStringSync(_generateAboutPageContent());

  final settingsPageFile = File(path.join(projectName, '$pagesPath/settings_page.dart'));
  settingsPageFile.writeAsStringSync(_generateSettingsPageContent());
}