UNPKG

@tsed/cli

Version:
50 lines (49 loc) 1.52 kB
import { CliPlugins, command, inject, PackageManagersModule, ProjectPackageJson } from "@tsed/cli-core"; export class AddCmd { constructor() { this.cliPlugins = inject(CliPlugins); this.packageJson = inject(ProjectPackageJson); this.packageManagers = inject(PackageManagersModule); } $prompt(initialOptions) { return [ { type: "autocomplete", name: "name", message: "Which cli plugin ?", default: initialOptions.name, when: !initialOptions.name, source: () => this.cliPlugins.searchPlugins() } ]; } $exec(ctx) { this.packageJson.addDevDependency(ctx.name, "latest"); return [ this.packageManagers.task("Install plugins", ctx), { title: "Load plugins", task: () => this.cliPlugins.loadPlugins() }, { title: "Install plugins dependencies", task: () => this.cliPlugins.addPluginsDependencies(ctx) }, { title: "Transform files", task: () => this.cliPlugins.addPluginsDependencies(ctx) } ]; } } command({ token: AddCmd, name: "add", description: "Add cli plugin to the current project", args: { name: { description: "Npm package name of the cli plugin", type: String } } });