getGlobalPackagesGenerator top-level property

FigGenerator getGlobalPackagesGenerator
final

Implementation

final FigGenerator getGlobalPackagesGenerator = FigGenerator(
  script: ['bash', '-c', 'cat "\$(yarn global dir)/package.json"'],
  postProcess: (String out, [List<String>? tokens]) {
    if (out.trim().isEmpty) return <FigSuggestion>[];
    try {
      final packageContent = jsonDecode(out) as Map<String, dynamic>;
      final dependencyScripts =
          packageContent['dependencies'] as Map<String, dynamic>? ?? {};
      final devDependencyScripts =
          packageContent['devDependencies'] as Map<String, dynamic>? ?? {};
      final dependencies = <String>[];
      dependencies.addAll(dependencyScripts.keys);
      dependencies.addAll(devDependencyScripts.keys);
      final tokenSet = tokens ?? [];
      final filteredDependencies = dependencies
          .where((dependency) => !tokenSet.contains(dependency))
          .toList();
      return filteredDependencies
          .map((dependencyName) => FigSuggestion(
                name: dependencyName,
                icon: '📦',
              ))
          .toList();
    } catch (e) {
      return <FigSuggestion>[];
    }
  },
);