Inicio / Artículos / DenoX CLI: Crea estructuras para proyectos y funcionalidades sin perder el control

DenoX CLI: Crea estructuras para proyectos y funcionalidades sin perder el control

Instale DenoX CLI, cree estructuras para aplicaciones, genere funcionalidades MVC con OpenAPI, elimine módulos de forma segura y actualice los archivos propiedad del framework sin tocar el código de la aplicación.

752 palabras

Uno de los objetivos principales de DenoX es reducir el trabajo repetitivo en el desarrollo sin quitarle el control a los ingenieros. El framework incluye su propia CLI en un único archivo de TypeScript que puede crear proyectos, generar funcionalidades completas, eliminar módulos de forma segura y actualizar el propio framework.

A diferencia de muchas CLIs modernas que utilizan docenas de paquetes, la CLI de DenoX se basa exclusivamente en las capacidades nativas de Deno.

Instalación

Instálalo con una sola orden:

deno install -grA -n denox https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts

O ejecútala sin instalarla:

deno run -A https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts new my-shop

La CLI es un archivo autónomo: no tiene dependencias externas ni importaciones desde el propio framework.

Creación de un proyecto

Crear la estructura básica de una nueva aplicación se hace con una sola orden:

denox new my-shop

El scaffold hace más que simplemente guardar un template en el disco. Extrae el starter oficial, elimina su historial de Git, crea un repositorio limpio, establece el campo de versión en 0.1.0, vacía el registro de cambios, reescribe el README con el nuevo nombre y aplica las modificaciones correspondientes en denox.config.ts.

El resultado está listo para ser desarrollado y ya supera las comprobaciones de deno task ci del proyecto sin necesidad de limpieza manual.

También funcionan los templates personalizados:

denox new my-app --template=<repository>

Generación de una funcionalidad completa

La mayor ventaja de la CLI es poder generar toda una funcionalidad MVC con un solo comando.

denox g feature reviews

En lugar de marcadores vacíos, la generación emite una porción completa de API con estructura MVC: modelo y DTO, interfaz de repositorio además de implementaciones en memoria y con Deno KV, servicio, controlador, rutas, una descripción OpenAPI junto al código, y un test de integración básico.

El registro en src/api/main.ts ocurre automáticamente, por lo que la función es accesible sin necesidad de configuraciones manuales.

OpenAPI integrado

Cada funcionalidad generada incluye su propia descripción OpenAPI.

Consecuencias:

  • La documentación está junto a la implementación
  • Las pruebas de paridad de rutas siguen funcionando correctamente
  • Al ejecutar:
deno task insomnia

se regenera automáticamente la colección de Insomnia.

No hay tarea adicional de mantenimiento manual para la documentación de API.

Generación segura de código

La CLI actúa con prudencia al modificar el código existente.

Cuando falta o está modificado el marcador // denox:features, la herramienta se niega a crear un punto de inserción.

Aun así, escribe los nuevos archivos de características, muestra las líneas exactas que deben pegarse a mano y deja intactos todos los archivos de código fuente existentes.

Nombres incorrectos o IDs duplicados de características impiden que la orden se ejecute antes de que cambie la estructura del proyecto.

Eliminar una característica

La operación inversa es tan importante como la generación.

denox rm feature reviews

La eliminación está diseñada para evitar proyectos dañados.

Primero, la CLI elimina todas las referencias al router relacionadas con esa característica.

Solo después de que la aplicación esté completamente desconectada se eliminan los archivos.

Incluso si el proceso se detiene a mitad de camino, el proyecto nunca quedará con importaciones que apunten a archivos inexistentes.

Al finalizar, src/api/main.ts vuelve al estado anterior a la generación: sin importaciones huérfanas ni líneas en blanco innecesarias.

Vista previa primero con:

denox rm feature reviews --dry-run

Los módulos principales permanecen bloqueados. Se rechazan los intentos de eliminar componentes integrados, como autenticación, usuarios, productos, pagos, salud y contactos.

Actualización del framework

Mantenga los proyectos actualizados con:

denox upgrade

Las actualizaciones no sobrescriben todo el árbol de archivos. Solo cambian las rutas propiedad del framework.

Dichas rutas se enumeran explícitamente en .denox-core.json.

Todo lo que está fuera de ese archivo permanece sin cambios, incluyendo:

  • Funcionalidades generadas
  • Configuración del proyecto
  • Archivos de entorno
  • Código específico de la aplicación

Modos adicionales de actualización:

denox upgrade --dry-run
denox upgrade --interactive
denox upgrade --ref=v1.2.0

Antes de actualizar, la CLI verifica que el árbol de trabajo de Git esté limpio. Los cambios no confirmados interrumpen la operación a menos que se fuerce, lo que reduce la pérdida accidental de datos.

Generación de páginas

La CLI también admite el enrutamiento basado en archivos del framework.

denox g page docs/faq

o

denox g page items/[id]

Después de crear la página, la tabla de enrutamiento se regenera automáticamente.

Filosofía detrás de la CLI de DenoX

La CLI refleja al framework: se priorizan las convenciones sobre la configuración sin perder el control.

Esos principios se manifiestan como reglas concretas: los archivos existentes se dejan intactos, las fuentes editadas a mano no se reescriben, los comandos destructivos ofrecen la opción --dry-run, los módulos propiedad del framework no se pueden eliminar a la ligera, OpenAPI permanece asociado a las rutas, y los archivos del framework se mantienen separados del código de la aplicación.

Juntos, esto da como resultado una CLI pequeña y predecible: menos código genérico, sin ocultar los cambios realizados.

Lecturas relacionadas