extractDependencies static method

List<String> extractDependencies([
  1. String root = '.'
])

Implementation

static List<String> extractDependencies([String root = '.']) {
  final deps = <String>[];

  // Dart dependencies
  if (FileService.fileExists('$root/pubspec.yaml')) {
    try {
      final content = FileService.readFile('$root/pubspec.yaml');
      final lines = content.split('\n');
      bool inDeps = false;
      bool inDevDeps = false;

      for (final line in lines) {
        if (line.trim() == 'dependencies:') {
          inDeps = true;
          inDevDeps = false;
          continue;
        }
        if (line.trim() == 'dev_dependencies:') {
          inDevDeps = true;
          inDeps = false;
          continue;
        }
        if (line.trim().isEmpty || line.startsWith('  ')) {
          // Continue if indented or empty
        } else if (!line.startsWith(' ') && !line.startsWith('\t')) {
          // New section
          inDeps = false;
          inDevDeps = false;
        }

        if (inDeps || inDevDeps) {
          final trimmed = line.trim();
          if (trimmed.contains(':') && !trimmed.startsWith('#')) {
            final dep = trimmed.split(':').first.trim();
            if (dep.isNotEmpty && !dep.startsWith('sdk')) {
              deps.add(dep);
            }
          }
        }
      }
    } catch (e) {
      // Ignore
    }
  }

  return deps;
}