directDependencyGenerator top-level property

FigGenerator directDependencyGenerator
final

Implementation

final FigGenerator directDependencyGenerator = FigGenerator(
  script: ['cargo', 'metadata', '--format-version', '1'],
  postProcess: (data, [tokens]) {
    final manifest = Metadata.fromJson(jsonDecode(data));
    final packages = rootPackageOrLocal(manifest);
    final deps = packages
        .expand((pkg) => pkg.dependencies)
        .map((dep) => FigSuggestion(
              name: dep.name,
              description: dep.req,
            ))
        .toList();

    // Deduplicate by name
    final uniqueDeps = <String, FigSuggestion>{};
    for (var dep in deps) {
      if (dep.nameSingle != null) {
        uniqueDeps[dep.nameSingle!] = dep;
      }
    }
    return uniqueDeps.values.toList();
  },
);