fc-cli-ca
v1.0.2
Published
CLI para agilizar el desarrollo de aplicaciones siguiendo Clean Architecture con NestJS
Downloads
4
Maintainers
Readme
CLI-CA: Generador de Módulos Clean Architecture
Una herramienta de línea de comandos para agilizar el desarrollo de aplicaciones siguiendo los principios de Clean Architecture con NestJS.
🚧 Nota: Esta CLI está en constante mejora y desarrollo activo. Nuevas características y mejoras se añaden regularmente.
🚀 Características
- Generación automática de módulos: Crea toda la estructura de un módulo completo con un solo comando
- Arquitectura limpia: Sigue las mejores prácticas de Clean Architecture
- Templates personalizables: Estructura basada en Handlebars para fácil personalización
- Convenciones de nomenclatura: Aplica automáticamente diferentes formatos de nomenclatura (camelCase, kebab-case, PascalCase, snake_case)
📦 Instalación
Instalación Global
npm install -g fc-cli-caInstalación Local
npm install fc-cli-ca🛠️ Uso
Comando Principal
ca generate <tipo> <nombre>
# o
ca g <tipo> <nombre>Generar un Módulo
# Generar un módulo de usuarios
ca generate module user
# Forma abreviada
ca g m user
# Generar un módulo de productos
ca generate module product📁 Estructura Generada
Al ejecutar ca generate module <nombre>, se crea la siguiente estructura en src/core/<nombre>:
src/core/<nombre>/
├── infrastructure/
│ ├── <nombre>.module.ts
│ ├── controllers/
│ │ └── <nombre>.controller.ts
│ └── repositories/
│ └── <nombre>.repository.ts
├── domain/
│ ├── entities/
│ │ └── <nombre>.entity.ts
│ └── interfaces/
│ └── <nombre>-repository.interface.ts
└── application/
├── dtos/
│ ├── requests/
│ │ ├── create-<nombre>.request.dto.ts
│ │ └── index.ts
│ └── responses/
│ ├── <nombre>.response.dto.ts
│ └── index.ts
├── interfaces/
│ └── use-cases/
│ ├── params/
│ │ ├── create-<nombre>.params.ts
│ │ └── index.ts
│ └── results/
│ ├── <nombre>.result.ts
│ └── index.ts
├── mappers/
│ ├── <nombre>.mapper.ts
│ └── index.ts
└── use-cases/
├── create-<nombre>.usecase.ts
├── find-all-<nombre>.usecase.ts
├── get-<nombre>-by-id.usecase.ts
└── index.ts🎯 Casos de Uso Incluidos
Cada módulo generado incluye automáticamente:
- Create: Crear una nueva entidad
- Find All: Obtener todas las entidades
- Get By Id: Obtener una entidad por su ID
🔧 Convenciones de Nomenclatura
La CLI aplica automáticamente diferentes formatos según el contexto:
- camelCase: Para variables y métodos (
userName) - kebab-case: Para archivos y rutas (
user-profile) - PascalCase: Para clases y tipos (
UserName) - snake_case: Para constantes (
USER_NAME)
Ejemplo
Si generas un módulo llamado user-profile:
ca generate module user-profileSe aplicarán las siguientes transformaciones:
userProfile(camelCase)user-profile(kebab-case)UserProfile(PascalCase)user_profile(snake_case)
📋 Requisitos
- Node.js 14 o superior
- NestJS (para usar los módulos generados)
- TypeORM (para las entidades)
🎨 Personalización
Los templates están ubicados en la carpeta templates/ y utilizan Handlebars para la generación. Puedes personalizar:
- Estructura de archivos
- Contenido de los templates
- Convenciones de nomenclatura
- Casos de uso incluidos
👨💻 Autor
Franz Cortez Olmedo
🚀 Ejemplos de Uso
Generar un módulo de productos
ca generate module productGenerar un módulo de categorías
ca g m categoryGenerar un módulo de pedidos
ca generate m order¡Disfruta desarrollando con Clean Architecture! 🎉
