iterEntries method

Iterable<EagleEntry> iterEntries()

Iterate through all entries in the library

Implementation

Iterable<EagleEntry> iterEntries() sync* {
  final imagesDir = Directory('$path/images');

  if (!imagesDir.existsSync()) {
    return;
  }

  // Get all .info directories which contain entry metadata
  final entryDirs = imagesDir
      .listSync()
      .where((entity) => entity is Directory && entity.path.endsWith('.info'))
      .cast<Directory>();

  for (final dir in entryDirs) {
    try {
      // Use basename to get just the directory name
      final dirName = dir.path.split(Platform.pathSeparator).last;
      final entryId = dirName.replaceAll('.info', '');
      final entry = getEntry(entryId);

      if (entry != null) {
        yield entry;
      }
    } catch (e) {
      // Skip invalid entries
      continue;
    }
  }
}