updateRouterConstants method

Future<void> updateRouterConstants(
  1. String name
)

Implementation

Future<void> updateRouterConstants(String name) async {
  try {
    String constantsPath = './lib/routes/constants.dart';
    File constantsFile = File(constantsPath);
    String content = await constantsFile.readAsString();

    String newRoute = '''
// $pageComment
static const ${_camelCase(name)} = '/${_camelCase(name)}';''';

    RegExp regex = RegExp(r'^\s*//\s*-{4,}\s*>\s*${selectModule.toUpperCase()}', multiLine: true);

    List<String> lines = content.split('\n');
    int insertIndex = -1;

    for (int i = 0; i < lines.length; i++) {
      if (regex.hasMatch(lines[i])) {
        insertIndex = i;
        break;
      }
    }

    if (insertIndex != -1) {
      lines.insert(insertIndex + 1, newRoute);
      await constantsFile.writeAsString(lines.join('\n'));
      await updateRouterConstantsPagesPath(name);
    } else {
      print('未找到模块部分');
    }
  } catch (error) {
    print('更新路由常量失败: $error');
  }
}