discoverDartFiles method

List<String> discoverDartFiles()

Returns all Dart files in the project.

If projectPath is a single file, returns a list containing just that file. If projectPath is a directory, returns all Dart files in the directory (excluding generated files like .g.dart and .freezed.dart).

Implementation

List<String> discoverDartFiles() {
  // Handle single file path
  if (FileSystemEntity.isFileSync(projectPath)) {
    if (projectPath.endsWith('.dart')) {
      return [path.absolute(projectPath)];
    }
    return [];
  }

  // Handle directory path
  final files = <String>[];
  final dir = Directory(projectPath);

  for (final entity in dir.listSync(recursive: true)) {
    if (entity is File && entity.path.endsWith('.dart')) {
      // Exclude generated files
      if (!entity.path.contains('.g.dart') &&
          !entity.path.contains('.freezed.dart')) {
        files.add(entity.path);
      }
    }
  }

  return files;
}