pluginsGenerator function

FigGenerator pluginsGenerator({
  1. required bool installed,
})

Implementation

FigGenerator pluginsGenerator({required bool installed}) {
  return FigGenerator(
    cache: FigCache(strategy: "stale-while-revalidate"),
    custom: (List<String> tokens, ExecuteCommandFunction? executeShellCommand,
        FigGeneratorContext? context) async {
      if (executeShellCommand == null) return [];
      final args = installed
          ? ["plugins", "list", "--format", "json", "--installed"]
          : ["plugins", "list", "--format", "json"];
      final out = await executeShellCommand(ExecuteCommandInput(
        command: "fig",
        args: args,
      ));
      final json = jsonDecode(out.stdout) as List;
      final plugins = json.map((e) => Plugin.fromJson(e)).toList();

      return plugins.map((plugin) {
        final icon = !plugin.icon.startsWith("https://") ? plugin.icon : "📦";
        return FigSuggestion(
          name: plugin.name,
          icon: icon,
          description: plugin.description,
        );
      }).toList();
    },
  );
}