Saltearse al contenido

Sub-Zero (Sub Comandos)

Hemos tocado los conceptos básicos de la creación de un comando, pero ¿qué pasa si queremos crear un comando que tenga subcomandos? Por ejemplo, queremos crear un comando que tenga un subcomando create y otro delete. Aquí es donde entran en juego los subcomandos.

Creando un Subcomando

Para crear un subcomando, necesitamos crear una nueva clase que extienda de SubCommand e implementar el método run. Luego, necesitamos agregar el subcomando al comando principal.

Supongamos que tienes la siguiente estructura de directorios:

  • src
  • Directorycommands
    • Directoryaccount
      • create.command.ts
      • delete.command.ts
      • parent.ts
  • index.ts
  • seyfert.config.mjs
  • package.json
  • tsconfig.json
import { Declare, Command, Options } from "seyfert";
import { CreateCommand } from "./create.command";
import { DeleteCommand } from "./delete.command";
@Declare({
name: "account",
description: "account command"
})
// Si están en la misma carpeta, puedes usar @AutoLoad y ahorrarte esto.
@Options([CreateCommand, DeleteCommand])
export default class AccountCommand extends Command {}

En el ejemplo anterior, hemos creado un subcomando create y otro delete. Luego agregamos los subcomandos al comando principal utilizando el decorador @Options.