loadAll static method
Recursively loads all files under entryDir and
returns them as a list of SourceFile instances.
Throws an exception if entryDir does not exist.
Implementation
static List<SourceFile> loadAll(Directory entryDir, List<String> extensions) {
if (!entryDir.existsSync()) {
throw Exception("Directory '${entryDir.path}' does not exist.");
}
final files = <SourceFile>[];
/// Helper function to traverse directories recursively.
void collectFiles(Directory dir) {
for (var entity in dir.listSync()) {
if (entity is File) {
final sourceFile = load(entity, extensions);
// Read file content and create a SourceFile instance
if (sourceFile != null) {
files.add(sourceFile);
}
} else if (entity is Directory) {
// Recursively collect files from subdirectories
collectFiles(entity);
}
}
}
collectFiles(entryDir);
return files;
}