addRouteToAppRoutes method

void addRouteToAppRoutes(
  1. String featureName,
  2. String pathName,
  3. String projectDir
)

Implementation

void addRouteToAppRoutes(
    String featureName, String pathName, String projectDir) {
  final routesFile =
      File(path.join(projectDir, 'lib/routes/app_routes.dart'));

  if (!routesFile.existsSync()) {
    printWarning('app_routes.dart file not found. Skipping route addition.');
    return;
  }

  final content = routesFile.readAsStringSync();

  final routesEntry = '''
static const $featureName = _Paths.$featureName;''';
  final pathsEntry = '''
static const $featureName = '$pathName';''';
  final namesEntry = '''
static const $featureName = '$featureName';''';

  final namesPathEntry = '''
static const $featureName = _Names.$featureName;''';

  String updatedContent = content;

  if (content.contains('abstract class Routes {')) {
    updatedContent = updatedContent.replaceFirst(
      'abstract class Routes {',
      'abstract class Routes {\n$routesEntry',
    );
  }

  if (content.contains('abstract class _Paths {')) {
    updatedContent = updatedContent.replaceFirst(
      'abstract class _Paths {',
      'abstract class _Paths {\n$pathsEntry',
    );
  }

  if (content.contains('abstract class _Names {')) {
    updatedContent = updatedContent.replaceFirst(
      'abstract class _Names {',
      'abstract class _Names {\n$namesEntry',
    );
  }

  if (content.contains('abstract class Names {')) {
    updatedContent = updatedContent.replaceFirst(
      'abstract class Names {',
      'abstract class Names {\n$namesPathEntry',
    );
  }

  routesFile.writeAsStringSync(updatedContent);
  print('Updated routes in app_routes.dart');
}