ddd-backend-cli
v1.2.4
Published
CLI para generar proyectos backend con DDD de manera rápida y sencilla
Downloads
327
Maintainers
Readme
CLI para generar proyectos backend siguiendo la arquitectura Domain-Driven Design (DDD) de forma rápida, estructurada y productiva usando Node.js + Express + TypeScript, con conexión a bases de datos SQL automatizada.
Video explicativo
👇 Haz clic en la imagen para ver la explicación completa del CLI en YouTube: 👇
Caracteristicas
- Generación automática de estructura DDD
- Generación automática de CRUD completo
- Arquitectura por capas (Domain / Application / Infrastructure / WebApi)
- Generación automática de:
- Controllers
- Services
- Repositories
- DTOs
- Routes
- OpenAPI Docs
- Soporte para base de datos SQL
- Configuración automática para conexión con Turso , SQLite
- Código listo para producción
- Escalable y mantenible
Instalación
Instalar globalmente:
#instalar paquete en el dispositivo de forma global
npm install -g ddd-backend-cli
#o usar con npx
npx ddd-backend-cliUso
El paquete cuenta con diferentes comandos , cada uno con un objetivo especifico, los detalles a continuación:
Este primer comando nos generará un proyecto básico de nodejs con express
#nos situamos en el escritorio o en la zona donde desees crear tu proyecto backend
#puedes cambiar el nombre de my-project-name por el nombre de tu preferencia
ddd-backend-cli init my-project-nameUna vez generado el proyecto base , navegamos dentro de la carpeta que nos ha creado con el comando:
#si has usado un nombre diferente a my-project-name
#asegurate de escribir ese nombre en lugar de my-project-name
cd my-project-name
#ejecutar el siguiente comando para asegurarnos que
#todo esta funcionando bien
npm run devAhora podemos generar la estructura y modelos de entidades a usar con un solo comando:
ddd-backend-cli generate-model <NombreModelo> <propiedad:tipo> <propiedad:tipo> ...Tipos de datos soportados:
string
number
boolean
DateEjemplo real del comando generate-model:
ddd-backend-cli generate-model es la base del comando que no debe cambiar
<NombreModelo> es el nombre que le darás a tu modelo en el sistema
<propiedad:tipo> propiedad es el nombre que le dás a esa propiedad ejemplo username y tipo es el tipo de dato que es la propiedad ejemplo string, este fragmento lo puedes repetir las veces que desees ya que probablemente tu modelo pueda tener de una propiedad a más, solo debes repetir este fragmento las veces que creas necesarias.
Esto generara automáticamente :
- Entity
- Repository interface
- Repository implementation
- Service
- Controller
- Routes
- DTOs
- Documentación de Endpoints
código ejemplo con varias propiedades:
ddd-backend-cli generate-model User username:string email:string age:numbercódigo ejemplo con solo una propiedad:
ddd-backend-cli generate-model Categoria description:stringPara seguir generando más modelos sobre el mismo proyecto solo debes repetir el comando con cada modelo
ddd-backend-cli generate-model <NombreModelo> <propiedad:tipo> <propiedad:tipo> ...Configurar Base de Datos
El CLI puede configurar automáticamente la infraestructura SQL del Proyecto, actualmente hay soporte para Turso(SQL) y SQLite y se encuentran en proceso: MySql
Diferencia importante
SQLite → No requiere archivo .env
Turso → Requiere variables de entorno en .env, esta se explica más adelante.
Esto se debe a que:
SQLite funciona como base de datos local basada en archivo.
Turso es un servicio externo y necesita credenciales de conexión.
Configurar Base de datos automaticamente:
El siguiente comando se encargará de crear la inicialización de la base de datos, la conexion SQL , creación automatica de las tablas en función de los modelos proporcionados, registro automatico en el archivo principal, y tipado de SQL correcto.
#ejecutar el comando dentro del proyecto
#recuerda remplazar <database-name> por alguno de
#los tipos soportados.
ddd-backend-cli database <database-name>Tipos de <database-name> soportados:
turso
sqliteejemplo de uso real
#no necesita variables de entorno
ddd-backend-cli database sqlite
#ó
#si necesita variables de entorno
ddd-backend-cli database turso
¿Qué hace el comando internamente?
Inicializa la conexión SQL
Configura el cliente de base de datos
Genera automáticamente las tablas según tus entidades
Registra la infraestructura en el dependency container
Configura el tipado SQL correcto
Actualiza el archivo principal si es necesario
Variables de entorno necesarias .env para Turso
Para que la conexión con la base de datos a Turso funcione correctamente debes crear en la base del proyecto al mismo nivel que esta el package.json el archivo que contiene las variables de entorno .env dentro este archivo debe tener los siguientes datos
TURSO_DB_AUTH_TOKEN="tu_token_de_conexion"
TURSO_DB_URL="tu_url_de_base_de_datos"Estructura del proyecto generado
├───.ddd
├───Application
│ ├───dtos
│ ├───interfaces
│ └───services
├───Domain
│ ├───entities
│ └───repositories
├───Infrastructure
│ ├───builders
│ ├───database
│ ├───interface
│ ├───repositories
│ ├───services
│ └───utils
├───shared
│ └───utils
└───WebApi
├───container
├───controllers
├───docs
│ ├───paths
│ └───schemas
└───routes
