scripts/ contiene programas auxiliares que se ejecutan fuera del ciclo de peticiones HTTP de NestJS: generación de tipos, automatización de tareas y herramientas de desarrollo. No es una capa de controllers ni de servicios.
Responsabilidad de la carpeta
- Una finalidad identificable por archivo: cada script debe resolver una tarea concreta y exponer sus parámetros de configuración.
- No colocar lógica de negocio aquí: la lógica de aplicación pertenece a
src/modulesy el acceso a datos asrc/queries. Los scripts de administración de PostgreSQL tienen su propia ubicación ensrc/db/*.db.ts. - Evitar rutas rígidas de otra máquina o repositorio: resuelve rutas desde una base conocida (
__dirnameoprocess.cwd(), según el modo de ejecución), conpath.resolve. - Validar los requisitos antes de escribir: comprueba URLs, rutas de salida y dependencias; si una tarea falla, finaliza con un error visible en vez de aparentar éxito.
- No incluir credenciales ni tokens en el código: utiliza variables de entorno cuando la tarea lo requiera.
- Evitar sobrescrituras inesperadas: conoce qué archivos genera cada script antes de ejecutarlo y mantén los archivos generados separados del código fuente escrito a mano.
Convención de nombres
Usa nombres descriptivos enkebab-case con extensión .ts. Por ejemplo:
.script.ts: el ejemplo actual utiliza generate-api-types.ts.
Generación de cliente Swagger/OpenAPI
La páginagenerate-api-types.ts documenta el generador de tipos para el frontend. Antes de ejecutarlo:
- Ajusta
SWAGGER_URLpara que apunte al OpenAPI JSON del backend; el servidor debe ser accesible. - Ajusta
OUTPUT_DIRa la carpeta real de salida de tu frontend. - Comprueba que la herramienta
swagger-typescript-apiesté instalada y que la ruta de salida sea correcta. - Revisa los archivos resultantes para evitar sobrescribir cambios manuales.
Criterio de revisión
Un script está listo cuando se entiende qué hace, qué necesita, cómo se ejecuta, qué genera y cómo informa los errores. Consulta la página específica para el código completo, en lugar de copiarlo en esta introducción. Estas convenciones describen el directorioscripts/, no crean ni instalan Skills de agentes.
