extractDependencies static method
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;
}