buildPackageGraph method

  1. @override
Future<PackageGraph> buildPackageGraph()
override

Implementation

@override
Future<PackageGraph> buildPackageGraph() async {
  runtimeStats.resetAccumulators([
    'elementTypeInstantiation',
    'modelElementCacheInsertion',
  ]);

  runtimeStats.startPerfTask('_calculatePackageMap');
  await _calculatePackageMap();
  runtimeStats.endPerfTask();

  runtimeStats.startPerfTask('getLibraries');
  var newGraph = PackageGraph.uninitialized(
    _config,
    _sdk,
    _embedderSdkUris.isNotEmpty,
    _packageMetaProvider,
    _analysisContext,
  );
  await _getLibraries(newGraph);
  runtimeStats.endPerfTask();

  logDebug('${DateTime.now()}: Initializing package graph...');
  runtimeStats.startPerfTask('initializePackageGraph');
  try {
    await newGraph.initializePackageGraph();
  } finally {
    await _dispose();
  }
  runtimeStats.endPerfTask();

  runtimeStats.startPerfTask('initializeCategories');
  newGraph.initializeCategories();
  runtimeStats.endPerfTask();

  return newGraph;
}