npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ddd-backend-cli

v1.1.0

Published

CLI para generar proyectos backend con DDD demanera rápida y sencilla

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.

Video explicativo

👇 Haz clic en la imagen para ver la explicación completa del CLI en YouTube: 👇

DDD Backend CLI - Video Demo

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 Turso
  • 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-cli

Uso

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-name

Una 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 dev

Ahora 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
Date

Ejemplo 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
  • OpenAPI schema

código ejemplo con varias propiedades:

ddd-backend-cli generate-model User username:string email:string age:number

código ejemplo con solo una propiedad:

ddd-backend-cli generate-model Categoria description:string

Para 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, es necesario contar con la variable de entorno .env la cual se explica más adelante.

Por el momento solo hay soporte para Turso(SQL) y se enecuentran en proceso: sqlite y mysql

Configurar Turso automaticamente database:

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 
ddd-backend-cli database turso

Variables de entorno necesarias .env

Para que la conexión con la base de datos 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_URL="tu_url_de_base_de_datos"
TURSO_DB_AUTH_TOKEN="tu_token_de_conexion"

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

Autor