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();
  if (packageBuilder.includeExternalsWasSpecified) {
    packageGraph.defaultPackage.warn(
      PackageWarning.deprecated,
      message:
          "The '--include-externals' option is deprecated, and will soon be "
          'removed.',
    );
  }
  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) {
    runtimeStats.startPerfTask('validateLinks');
    Validator(packageGraph, config, _outputDir.path, writtenFiles,
            _onCheckProgress)
        .validateLinks();
    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);
}