44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
### Prompt para tu README / CLI
|
|
|
|
**Generar un nuevo módulo ERP desde la plantilla**
|
|
|
|
Nuestro ERP permite crear módulos de forma **estandarizada** usando una **plantilla base** (Hexagonal/DDD, TS, Express, Sequelize) y un **generador Plop**.
|
|
|
|
**Opción A — con Plop (recomendada)**
|
|
|
|
1. Instala dependencias de desarrollo si no las tienes:
|
|
|
|
* `pnpm add -D plop`
|
|
2. Asegúrate de tener en el repo:
|
|
|
|
* `plopfile.js` con el generador `module`
|
|
* Carpeta `templates/new-module/` con la plantilla (placeholders Handlebars: `{{kebabCase name}}`, `{{pascalCase name}}`, etc.)
|
|
3. Ejecuta el generador:
|
|
|
|
* `pnpm plop module`
|
|
4. Introduce el nombre del módulo en **kebab-case** (p. ej., `suppliers`).
|
|
5. Se creará `packages/suppliers/` con:
|
|
|
|
* `src/api/{application,domain,infrastructure,helpers}` + `common`
|
|
* Casos de uso CRUD, presenters (FULL/LIST), specs comunes y contratos de repositorio.
|
|
6. Integra en el monorepo:
|
|
|
|
* Añade targets en `turbo.json` si aplica.
|
|
* Ejecuta `pnpm -w build` para validar compilación.
|
|
|
|
**Opción B — manual (desde ZIP de plantilla)**
|
|
|
|
1. Descomprime `new-module-template.zip`.
|
|
2. Copia `new-module/` a `packages/<mi-modulo>/`.
|
|
3. Renombra los archivos con `entity`/`{{name}}` por el nombre real o usa búsqueda global.
|
|
4. Ajusta `package.json` (`name`, `scripts`), y registra el módulo en `turbo.json`.
|
|
5. `pnpm -w install && pnpm -w build`.
|
|
|
|
**Convenciones clave**
|
|
|
|
* Nombres de archivos/directorios en **kebab-case**; código en **Inglés**; comentarios **TSDoc en castellano**.
|
|
* Mantén SOLID, SoC, alta cohesión/bajo acoplamiento, y hexagonal (puertos/adaptadores).
|
|
* Observabilidad (logs estructurados), idempotencia en endpoints, y principio de menor privilegio.
|
|
|
|
|