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 🙏

© 2024 – Pkg Stats / Ryan Hefner

generator-proyecto-nestjs-base

v0.0.1

Published

Un generador Yeoman para proyectos NestJS

Downloads

4

Readme

Generador de Proyecto NestJS Base

Este generador crea una estructura básica para un proyecto NestJS, incluyendo la configuración inicial del pipeline, migraciones, pruebas y configuración de entorno.

Requisitos

  • Node.js (versión 20 o superior)
  • npm (versión 10 o superior)
  • Yeoman

Instalación

Primero, asegúrate de tener Yeoman instalado. Si no lo tienes, puedes instalarlo globalmente con:

npm install -g yo

Luego, instala el generador de proyecto NestJS base:

npm install -g generator-proyecto-nestjs-base

Crear un Nuevo Proyecto

Para generar un nuevo proyecto NestJS, sigue estos pasos:

Uso Básico

  1. Ejecuta el Generador:

    Abre tu terminal y navega al directorio donde quieres crear el proyecto. Luego ejecuta:

    yo proyecto-nestjs-base
  2. Proporciona Información del Proyecto:

    Durante la ejecución del generador, se te pedirá ingresar algunos detalles sobre tu proyecto:

    • Nombre del Proyecto: Nombre del proyecto NestJS (ejemplo: mi-proyecto-nestjs).
    • Descripción del Proyecto: Una breve descripción del propósito del proyecto.
  3. Finalización:

    Una vez completado el proceso, el generador creará la estructura del proyecto en la carpeta especificada.

Uso con Parámetros Opcionales

Puedes pasar parámetros opcionales directamente al ejecutar el generador, evitando así la necesidad de ingresar manualmente cada detalle durante la ejecución:

  • Nombre del Proyecto: Usa --projectName para especificar el nombre del proyecto.

    yo proyecto-nestjs-base --projectName="mi-proyecto-nestjs"
  • Descripción del Proyecto: Usa --projectDescription para especificar una descripción del proyecto.

    yo proyecto-nestjs-base --projectDescription="Este es un proyecto base de NestJS."

Ejemplo combinando ambos parámetros:

yo proyecto-nestjs-base --projectName="mi-proyecto-nestjs" --projectDescription="Este es un proyecto base de NestJS."

Al usar estos parámetros, el generador tomará los valores proporcionados sin solicitarte esa información durante su ejecución.

Configuración del Entorno

El proyecto NestJS utiliza un archivo .env para definir los parámetros de entorno, incluyendo el puerto en el que se ejecutará la aplicación.

Archivo .env

El archivo .env contendrá las configuraciones clave para tu proyecto. Un ejemplo básico del contenido de este archivo sería:

APP_PORT=3000
DATABASE_HOST=postgres://user:password@localhost:5432/mydatabase
JWT_SECRET=mysecretkey

Archivo .env.example

El proyecto generado incluye un archivo .env.example que tiene los parámetros base necesarios para que puedas generar tu propio archivo .env. Simplemente copia el contenido de .env.example y crea un nuevo archivo .env en la raíz de tu proyecto.

cp .env.example .env

Luego, asegúrate de ajustar las configuraciones según tus necesidades.

Comandos Post-Generación

Una vez que tu proyecto ha sido generado, sigue estos pasos para ponerlo en funcionamiento:

  1. Instala las Dependencias:

    Navega a la carpeta del proyecto generado y ejecuta:

    npm install
  2. Inicia la Aplicación:

    Para iniciar la aplicación NestJS en modo desarrollo, ejecuta:

    npm run start:dev

    La aplicación se ejecutará en el puerto especificado en tu archivo .env. Por defecto, este puerto será 3000. Abre tu navegador y navega a http://localhost:3000 para ver tu nueva aplicación NestJS en acción.

Comandos de Scripts Disponibles

Comandos Generales

  • Compilar la aplicación:

    npm run build
  • Formatear el código usando Prettier:

    npm run format
  • Iniciar la aplicación en modo producción:

    npm run start:prod

Comandos para Pruebas

  • Pruebas Unitarias:

    npm run test
  • Cobertura de Pruebas:

    npm run test:cov
  • Pruebas E2E:

    npm run test:e2e
  • Pruebas en modo observación (watch mode):

    npm run test:watch

Migraciones con TypeORM

  • Generar migraciones:

    npm run migration:generate
  • Ejecutar migraciones:

    npm run migration:run
  • Revertir migraciones:

    npm run migration:revert
  • Mostrar el registro de migraciones:

    npm run migration:log

Docker

Si deseas ejecutar la aplicación usando Docker, puedes hacerlo con el siguiente comando:

npm run docker:run

Este comando construirá la imagen de Docker y la ejecutará en un contenedor.

Estructura del Proyecto

El proyecto generado tendrá una estructura similar a la siguiente:

- dist
- src
  - common
    - decorators
    - exception-filters
    - guards
    - interceptors
    - interfaces
    - middlewares
    - pipes
    - serializers
    - utils
    - core.module.ts
    - shared.module.ts
  - config
    - database.config.ts
  - migrations
  - modules
    - auth
    - funcionalidades
    - usuarios
    - registros
  - app.controller.ts
  - app.module.ts
  - app.service.ts
  - main.ts
- test

Servicios Implementados:


Login

Parámetros de Entrada

{
  "username": "usertest",
  "password": "123456"
}

Ambos parámetros son requeridos.

Descripción

Recibe el nombre de usuario y la contraseña de la persona que quiere iniciar sesión. Si estos datos coinciden con los registros de la base de datos, el usuario podrá acceder al sistema. Retorna un JWT que es necesario para las siguientes solicitudes. Este JWT debe estar en el header Authorization de las peticiones.

Ejemplo de solicitud usando curl:

curl http://localhost:3000/profile -H "Authorization: Bearer <JWT>"

Refresh Token

Parámetros de Entrada

{
  "refreshToken": "<REFRESH_TOKEN>"
}

El refreshToken es requerido para generar un nuevo access_token.

Descripción

Permite generar un nuevo access_token a partir de un refresh_token válido. El refresh_token tiene una validez mayor (7 días) en comparación con el access_token (24 horas).


Personalización

El generador utiliza plantillas que puedes personalizar según tus necesidades. Simplemente edita los archivos en el directorio de plantillas y vuelve a ejecutar el generador para ver los cambios reflejados en los nuevos proyectos.