scanProject method
Scans targetPath and returns the flat list of detected ProviderNodes.
Implementation
List<ProviderNode> scanProject() {
final irNodes = <ProviderNode>[];
final targetType = FileSystemEntity.typeSync(
targetPath,
followLinks: false,
);
if (targetType == FileSystemEntityType.notFound) {
print('Directory $targetPath does not exist.');
return irNodes;
}
if (targetType == FileSystemEntityType.file) {
return _scanFile(File(targetPath));
}
final directory = Directory(targetPath);
final dartFiles = directory
.listSync(recursive: true)
.whereType<File>()
.where(
(file) =>
file.path.endsWith('.dart') && !file.path.contains('.g.dart'),
);
for (final file in dartFiles) {
final fileNodes = _scanFile(file);
irNodes.addAll(fileNodes);
}
return irNodes;
}