CLI y flags
Uso básico
bash
npx @carloscasteher/create-bb-app
pnpm dlx @carloscasteher/create-bb-appModo interactivo (local / desarrollo del CLI)
bash
pnpm build
node dist/cli.js
# o: pnpm devObtendrás un wizard con:
- respuestas tipadas (nombre del proyecto)
- ↑ / ↓ + Enter para elegir database, events, install deps
- resumen + confirmación final
Flags
| Flag | Descripción |
|---|---|
[project-name] | Directorio y nombre del paquete (kebab-case). . scaffolda in-place |
--database <postgres|mongo> | Adapter de persistencia; mutuamente excluyentes |
--events / --no-events | Incluir u omitir el installer de domain events |
--agents / --no-agents | Incluir u omitir todo el tooling de IA (skills, Cursor, Serena) |
--agents-skills | Incluir .agents, AGENTS.md y skills-lock.json |
--agents-cursor | Incluir .cursor |
--agents-serena | Incluir .serena |
--skip-install | No ejecutar pnpm install tras el scaffolding |
--yes | Acepta defaults de lo no pasado como flag |
-v, --version | Imprime la versión del CLI |
El tooling de IA es opt-in: con --yes y sin flags --agents*, no se copia ninguno de esos archivos. Git se inicializa siempre (git init en main) sin commit inicial.
Layout del repositorio CLI
text
create-bb-app/
├── src/
│ ├── cli.ts
│ ├── prompts.ts
│ ├── installers/
│ │ ├── postgres.installer.ts
│ │ ├── mongo.installer.ts
│ │ ├── events.installer.ts
│ │ └── index.ts
│ ├── helpers/ # copy, merge, compose ApiModule/HealthCheckModule
│ └── types/Installer.ts
└── template/
├── base/ # Nest skeleton + shared kernel + liveness health-check
└── extras/
├── postgres/ # TypeORM + users + docker + db-health
├── mongo/ # Mongoose + users + docker + db-health
└── events/ # Domain event primitives, EventBus adapters, demo health checkContrato de installers
Cada feature opcional/exclusiva es un Installer:
- archivos bajo
template/extras/<id>/ dependencies,devDependencies,scripts,envVarsmergeados en el proyecto generadopostgresymongocompartenexclusiveGroup: 'database'(XOR)