addPage static method

void addPage({
  1. required String featureName,
  2. 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');
}