import { Inject } from "@ipare/inject"; import inquirer from "inquirer"; import { PluginConfig, PluginConfigService } from "./plugin-config.service"; export class PluginSelectService { @Inject private readonly pluginConfigService!: PluginConfigService; public async select(env?: string): Promise { let pluginConfig: PluginConfig; if (env) { pluginConfig = await this.pluginConfigService.getSortedConfig([env]); } else { pluginConfig = await this.pluginConfigService.getConfig(); } const { plugins } = await inquirer.prompt([ { type: "checkbox", message: "Select plugins", name: "plugins", choices: pluginConfig.plugins .filter((p) => p.when != false) .map((p) => ({ value: p.name, name: p.desc, checked: p.default, })), }, ]); return plugins; } }