generateDisclaimers<C, F> function

Future<DisclaimerDisplay<List<C>, List<F>>> generateDisclaimers<C, F>({
  1. required Config config,
  2. required PackageChecker packageConfig,
  3. required bool showDirectDepsOnly,
  4. required bool noDevDependencies,
  5. required DisclaimerCLIDisplayFunction<C> disclaimerCLIDisplay,
  6. required DisclaimerFileDisplayFunction<F> disclaimerFileDisplay,
})

Generate disclaimers for all packages

Implementation

Future<DisclaimerDisplay<List<C>, List<F>>> generateDisclaimers<C, F>({
  required Config config,
  required PackageChecker packageConfig,
  required bool showDirectDepsOnly,
  required bool noDevDependencies,
  required DisclaimerCLIDisplayFunction<C> disclaimerCLIDisplay,
  required DisclaimerFileDisplayFunction<F> disclaimerFileDisplay,
}) async {
  DisclaimerDisplay<List<C>, List<F>> disclaimers =
      DisclaimerDisplay(cli: [], file: []);

  for (DependencyChecker package in packageConfig.packages) {
    if (showDirectDepsOnly &&
            !packageConfig.pubspec.dependencies.containsKey(package.name) ||
        config.omitDisclaimer.contains(package.name)) {
      // Ignore dependencies not defined in the packages pubspec.yaml
      // Do not generate disclaimer for ignored packages
      continue;
    }
    if (noDevDependencies &&
        packageConfig.pubspec.devDependencies.containsKey(package.name)) {
      // Ignore dev dependencies
      continue;
    }
    DisclaimerDisplay<C, F>? packageDisclaimer =
        await generatePackageDisclaimer<C, F>(
      config: config,
      package: package,
      disclaimerCLIDisplay: disclaimerCLIDisplay,
      disclaimerFileDisplay: disclaimerFileDisplay,
    );
    disclaimers.cli.add(packageDisclaimer.cli);
    disclaimers.file.add(packageDisclaimer.file);
  }

  return disclaimers;
}