addRouteToAppPages method

void addRouteToAppPages(
  1. String featureName,
  2. String className,
  3. String projectDir
)

Implementation

void addRouteToAppPages(
    String featureName, String className, String projectDir) {
  final pagesFile = File(path.join(projectDir, 'lib/routes/app_pages.dart'));

  if (!pagesFile.existsSync()) {
    printWarning('app_pages.dart file not found. Skipping page addition.');
    return;
  }

  final content = pagesFile.readAsStringSync();
  final snakeCaseName = toSnakeCase(featureName);
  final packageName = getPackageName(path.join(projectDir, 'lib'));

  final importEntry =
      "import 'package:$packageName/features/$featureName/presentation/pages/${snakeCaseName}_page.dart';\n";
  final routeEntry = '''
  GoRoute(
    name: Names.$featureName,
    path: Routes.$featureName,
    builder: (context, state) => const $className(),
  ),
''';

  String updatedContent;
  if (content.contains('routes: [')) {
    updatedContent = importEntry +
        content.replaceFirst(
          'routes: [',
          'routes: [\n$routeEntry',
        );
  } else {
    updatedContent = importEntry + content;
    printWarning(
        'Could not find "routes: [" in app_pages.dart. Route might need to be added manually.');
  }

  pagesFile.writeAsStringSync(updatedContent);
  print('Updated routes in app_pages.dart');
}