addLibraryToGraph method

void addLibraryToGraph(
  1. DartDocResolvedLibrary resolvedLibrary
)

Adds resolvedLibrary to the package graph, adding it to allLibraries, and to the Package which is created from the PackageMeta for the library.

Call during initialization to add a library to this PackageGraph.

Libraries added in this manner are assumed to be part of documented packages, even if 'includes' or 'embedder.yaml' files cause these to span packages.

Implementation

void addLibraryToGraph(DartDocResolvedLibrary resolvedLibrary) {
  assert(!allLibrariesAdded);
  var libraryElement = resolvedLibrary.element;
  var packageMeta =
      packageMetaProvider.fromElement(libraryElement, config.sdkDir);
  if (packageMeta == null) {
    var libraryPath = libraryElement.librarySource.fullName;
    var dartOrFlutter = config.flutterRoot == null ? 'dart' : 'flutter';
    throw DartdocFailure(
        "Unknown package for library: '$libraryPath'.  Consider "
        '`$dartOrFlutter pub get` and/or '
        '`$dartOrFlutter pub global deactivate dartdoc` followed by '
        '`$dartOrFlutter pub global activate dartdoc` to fix. Also, be sure '
        'that `$dartOrFlutter analyze` completes without errors.');
  }
  var package = Package.fromPackageMeta(packageMeta, this);
  var lib = Library.fromLibraryResult(resolvedLibrary, this, package);
  package.libraries.add(lib);
  allLibraries[libraryElement.source.fullName] = lib;
}