EagleLibrary.fromPath constructor

EagleLibrary.fromPath(
  1. String path
)

Implementation

factory EagleLibrary.fromPath(String path) {
  // make path absolute
  final absolutePath = Directory(path).absolute.path;

  if (_instances.containsKey(absolutePath)) {
    return _instances[absolutePath]!;
  }

  final x = isEagleLibrary(absolutePath);
  if (x != 1) {
    throw Exception('Invalid Eagle Library ($x)');
  }

  // create json loaded objects
  final tagsRaw = File('$absolutePath/tags.json').readAsStringSync();
  final savedFiltersRaw = File(
    '$absolutePath/saved-filters.json',
  ).readAsStringSync();
  final mTimeRaw = File('$absolutePath/mtime.json').readAsStringSync();
  final metadataRaw = File('$absolutePath/metadata.json').readAsStringSync();

  final tagsJson = jsonDecode(tagsRaw);
  final savedFiltersJson = jsonDecode(savedFiltersRaw);
  final mTimeJson = jsonDecode(mTimeRaw);
  final metadataJson = jsonDecode(metadataRaw);

  return EagleLibrary._internal(
    path: absolutePath,
    tags: Tags.fromJson(tagsJson),
    savedFilters: SavedFilters.fromJson(savedFiltersJson),
    mTime: MTime.fromJson(mTimeJson),
    metadata: Metadata.fromJson(metadataJson),
  );
}