addInAppRoutesFile method
void
addInAppRoutesFile()
Implementation
void addInAppRoutesFile() {
// reading app_routes.dart file
final file = File(FolderPaths.appRoutesFile);
String content = file.readAsStringSync();
// extract all imports from code
final imports = RegExp(r'import.*?;')
.allMatches(content)
.map((e) => e.group(0))
.toList();
// extract routes from code
final routesMatch =
RegExp(r'static final routes = \[([\s\S]*?)\];').firstMatch(content);
// if import length is 0, then add import
if (imports.isEmpty) {
content = '''
import '/app/routes/routes.dart';
import 'package:get/get.dart';
import 'routes.dart';
import '../modules/${nameFolder.toLowerCase()}/${nameFolder.toLowerCase()}_binding.dart';
import '../modules/${nameFolder.toLowerCase()}/${nameFolder.toLowerCase()}_view.dart';
''';
} else {
content = '''
${imports.join('\n')}
import '../modules/${nameFolder.toLowerCase()}/${nameFolder.toLowerCase()}_binding.dart';
import '../modules/${nameFolder.toLowerCase()}/${nameFolder.toLowerCase()}_view.dart';
import 'routes.dart';
''';
}
// if routesMatch is null, then add routes
if (routesMatch == null) {
content += '''
class AppPages {
static final routes = [
GetPage(
name: Routes.${nameFolder.toUpperCase()},
page: () => const ${nameFolder.toCamelCase()}View(),
binding: ${nameFolder.toCamelCase()}Binding(),
),
];
}
''';
} else {
// extract routes from routesMatch
final routes = routesMatch.group(1);
// add routes to content
content += '''
class AppPages {
static final routes = [
$routes
GetPage(
name: Routes.${nameFolder.toUpperCase()},
page: () => const ${nameFolder.toCamelCase()}View(),
binding: ${nameFolder.toCamelCase()}Binding(),
),
];
}
''';
}
// write content to app_routes.dart file
file.writeAsStringSync(content);
print("⚡ Add routes to app_routes.dart file\n\n");
}