addRoute function
void
addRoute(
{ - required String projectName,
- required String featureName,
})
Implementation
void addRoute({required String projectName, required String featureName}) {
final routerFile = File('$projectName/lib/core/routes/app_router.dart');
final content = routerFile.readAsStringSync();
final featureImport =
"import '../../features/$featureName/presentation/screens/${featureName}_screen.dart';";
final routeBlock = '''
GoRoute(
path: AppRoutes.$featureName,
builder: (context, state) => const ${capitalize(featureName)}Screen(),
),
''';
String updated = content;
if (!content.contains(featureImport)) {
updated = updated.replaceFirst(
"import 'package:go_router/go_router.dart';",
"import 'package:go_router/go_router.dart';\n$featureImport",
);
}
if (!content.contains("AppRoutes.$featureName")) {
updated = updated.replaceFirst('routes: [', 'routes: [\n$routeBlock');
}
routerFile.writeAsStringSync(updated);
print('🛣️ Route added');
}