generateDocsBase method

  1. @visibleForTesting
Future<DartdocResults> generateDocsBase()

Implementation

@visibleForTesting
Future<DartdocResults> generateDocsBase() async {
  var stopwatch = Stopwatch()..start();
  runtimeStats.startPerfTask('buildPackageGraph');
  var packageGraph = await packageBuilder.buildPackageGraph();
  runtimeStats.endPerfTask();
  var libs = packageGraph.libraryCount;
  logInfo("Initialized dartdoc with $libs librar${libs == 1 ? 'y' : 'ies'}");

  runtimeStats.startPerfTask('generator.generate');
  await generator.generate(packageGraph);
  runtimeStats.endPerfTask();

  var writtenFiles = generator.writtenFiles;
  if (config.validateLinks &&
      writtenFiles.isNotEmpty &&
      generator.supportsLinkValidation) {
    runtimeStats.startPerfTask('validateLinks');
    await generator.validateGeneratedLinks(
      packageGraph,
      config,
      _outputDir.path,
      _onCheckProgress,
    );
    runtimeStats.endPerfTask();
  }

  var warnings = packageGraph.packageWarningCounter.warningCount;
  var errors = packageGraph.packageWarningCounter.errorCount;
  logWarning(
    "Found $warnings ${pluralize('warning', warnings)} "
    "and $errors ${pluralize('error', errors)}.",
  );

  var seconds = stopwatch.elapsedMilliseconds / 1000.0;
  libs = packageGraph.localPublicLibraries.length;
  logInfo(
    "Documented $libs public librar${libs == 1 ? 'y' : 'ies'} "
    'in ${seconds.toStringAsFixed(1)} seconds',
  );

  if (config.showStats) {
    logInfo(runtimeStats.buildReport());
  }
  return DartdocResults(config.topLevelPackageMeta, packageGraph, _outputDir);
}