dartdoc method

Future<PanaProcessResult> dartdoc(
  1. String packageDir,
  2. String outputDir, {
  3. Duration? timeout,
  4. required bool usesFlutter,
})

Implementation

Future<PanaProcessResult> dartdoc(
  String packageDir,
  String outputDir, {
  Duration? timeout,
  required bool usesFlutter,
}) async {
  final sdkDir = usesFlutter
      ? _flutterSdk._dartSdk._config.rootPath
      : _dartSdk._config.rootPath;

  final args = [
    '--output',
    outputDir,
    '--sanitize-html',
    '--max-file-count',
    '$_defaultMaxFileCount',
    '--max-total-size',
    '$_defaultMaxTotalLengthBytes',
    '--no-validate-links',
    if (sdkDir != null) ...['--sdk-dir', sdkDir],
  ];

  if (_dartdocVersion == 'sdk') {
    final command =
        usesFlutter ? _flutterSdk._dartSdk.dartCmd : _dartSdk.dartCmd;
    return await runConstrained(
      [...command, 'doc', ...args],
      workingDirectory: packageDir,
      environment: _dartSdk.environment,
      timeout: timeout,
    );
  } else {
    if (!_globalDartdocActivated) {
      await runConstrained(
        [
          ..._dartSdk.dartCmd,
          'pub',
          'global',
          'activate',
          'dartdoc',
          if (_dartdocVersion != null) _dartdocVersion!,
        ],
        environment: {
          ..._dartSdk.environment,
          'PUB_HOSTED_URL': 'https://pub-web.flutter-io.cn',
        },
        throwOnError: true,
      );
      _globalDartdocActivated = true;
    }
    final command = usesFlutter ? _flutterSdk.flutterCmd : _dartSdk.dartCmd;
    return await runConstrained(
      [...command, 'pub', 'global', 'run', 'dartdoc', ...args],
      workingDirectory: packageDir,
      environment:
          usesFlutter ? _flutterSdk.environment : _dartSdk.environment,
      timeout: timeout,
    );
  }
}