addPage static method
void
addPage(
{ - required String featureName,
- bool isOnlyScreen = false,
})
Implementation
static void addPage({
required String featureName,
bool isOnlyScreen = false,
}) {
var file = File('lib/app/routes/app_pages.dart');
var lines = <String>[];
var content = file.readAsStringSync();
lines = LineSplitter.split(content).toList();
var indexRoutes = lines.indexWhere(
(element) => element.trim().contains('static final routes'));
var index =
lines.indexWhere((element) => element.contains('];'), indexRoutes);
if (isOnlyScreen) {
var line = '''GetPage(
name: _Paths.${featureName.camelCase},
page:()=> const ${featureName.pascalCase}View(),
),
''';
lines.insert(index, line);
lines.insert(0,
"import '../modules/$featureName/views/${featureName}_view.dart';");
file.writeAsStringSync(formatterDartFile(lines.join('')));
LogService.success('Page $featureName added to app_pages.dart');
return;
}
var line = '''GetPage(
name: _Paths.${featureName.camelCase},
page:()=> const ${featureName.pascalCase}View(),
binding: ${featureName.pascalCase}Binding(),
),
''';
lines.insert(index, line);
lines.insert(0,
"import '../modules/$featureName/bindings/${featureName}_binding.dart';");
lines.insert(
0, "import '../modules/$featureName/views/${featureName}_view.dart';");
file.writeAsStringSync(formatterDartFile(lines.join('')));
LogService.success('Page $featureName added to app_pages.dart');
}