addRoute function

Future<void> addRoute(
  1. String nameRoute
)

Implementation

Future<void> addRoute(String nameRoute) async {
  File routesFile = File(
    replaceAsExpected(path: 'lib/infrastructure/navigation/routes.dart'),
  );

  if (!await routesFile.exists()) {
    await RouteSample(initial: nameRoute.snakeCase.toUpperCase()).create();
  }

  List<String> lines = await routesFile.readAsLines();
  String line =
      '''\n\tstatic const ${nameRoute.snakeCase.toUpperCase()} = '/${nameRoute.snakeCase.toLowerCase().replaceAll('_', '-')}';''';
  if (lines.contains(line)) {
    return;
  }

  while (lines.last.isEmpty) {
    lines.removeLast();
  }

  if (lines.last.trim() != '}') {
    lines.last = lines.last.replaceAll('}', '');
    lines.add('}');
  }

  lines.add(line);

  routesSort(lines);

  routesFile.writeAsStringSync(lines.join('\n'));
  LogService.success('$nameRoute route created successfully.');

  await addNavigation(nameRoute);
}