loadAll static method

List<SourceFile> loadAll(
  1. Directory entryDir,
  2. List<String> extensions
)

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;
}