1.0.3 • Published 4 months ago

@tresdoce-nestjs-toolkit/typeorm v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Este módulo está pensada para ser utilizada en NestJS Starter, o cualquier proyecto que utilice una configuración centralizada, siguiendo la misma arquitectura del starter.

Glosario


📝 Requerimientos básicos

🛠️ Instalar dependencia

npm install -S @tresdoce-nestjs-toolkit/typeorm
yarn add @tresdoce-nestjs-toolkit/typeorm

⚙️ Configuración

Agregar los datos de conexión a la base de datos en configuration.ts utilizando el key database que contenga el objeto typeorm y asigne los datos desde las variables de entorno.

Estos datos pueden variar dependiendo si te vas a conectar a una MongoDB, Postgres o MySql, por lo que es recomendable revisar la Documentación de NestJS como también la Documentación de TypeORM y el Data Source Options de TypeORM.

//./src/config/configuration.ts
import { Typings } from '@tresdoce-nestjs-toolkit/core';
import { registerAs } from '@nestjs/config';

export default registerAs('config', (): Typings.AppConfig => {
  return {
    //...
    database: {
      typeorm: {
        type: 'postgres',
        host: process.env.DATABASE_HOST,
        port: parseInt(process.env.DATABASE_PORT, 10),
        username: encodeURIComponent(process.env.DATABASE_USERNAME),
        password: encodeURIComponent(process.env.DATABASE_PASSWORD),
        database: encodeURIComponent(process.env.DATABASE_DB_NAME),
        synchronize: false,
        autoLoadEntities: false,
        entities: [__dirname + '/**/*.entity{.ts,.js}'],
      },
    },
    //...
  };
});

type: Es el tipo de base de datos a conectarse.

  • Type: String
  • Values: mongodb | postgres | mysql | <otra>

host: Es el servidor para conectarse a la base de datos mongo.

  • Type: String
  • Values: localhost | 127.0.0.1 | <host>

port: Es el puerto para conectarse a la base de datos mongo, no es obligatorio ponerlo.

  • Type: Number

username: Es el nombre de usuario para conectarse a la base de datos.

  • Type: String

password: Es la contraseña de usuario para conectarse a la base de datos.

  • Type: String

database: Es el nombre de la base de datos.

  • Type: String

synchronize: Indica si el esquema de la base de datos debe ser creado automáticamente en cada lanzamiento de la aplicación. Tenga cuidado con esta opción y no la utilice en producción - de lo contrario puede perder los datos de producción.

  • Type: Boolean

autoLoadEntities: Carga automática de las entities.

  • Type: Boolean
  • Default: false

entities: Es un array de strings para configurar los entities a utilizar, se puede poner un glob para que reconozca a todas las entidades.

  • Type: Array

👨‍💻 Uso

Importar el TypeOrmClientModule en el archivo app.module.ts, y el módulo se encargará de obtener la configuración y realizar la connexion automáticamente.

//./src/app.module.ts
import { TypeOrmClientModule } from '@tresdoce-nestjs-toolkit/typeorm';

@Module({
  //...
  imports: [
    //...
    TypeOrmClientModule,
    //...
  ],
  //...
})
export class AppModule {}

Para la inyección de Schemas se utiliza la propiedad forFeature del módulo enviando las entity como un array.

import { TypeOrmClientModule } from '@tresdoce-nestjs-toolkit/typeorm';
import { Cat } from './entities/cat.entity';

@module({
  imports: [
    //...
    TypeOrmClientModule.forFeature([Cat]),
    //...
  ],
  //...
})
export class CatsModule {}

📄 Changelog

Todos los cambios notables de este paquete se documentarán en el archivo Changelog.


1.0.3

4 months ago

1.0.2

8 months ago

1.0.1

9 months ago

1.0.0

9 months ago

0.4.1-beta.2

10 months ago

0.4.1-beta.1

10 months ago

0.4.3-beta.0

9 months ago

0.4.1-beta.0

10 months ago

0.4.2-beta.1

10 months ago

0.4.2-beta.0

10 months ago

1.0.0-beta.2

9 months ago

1.0.1-beta.1

9 months ago

1.0.2-beta.0

8 months ago

1.0.1-beta.0

9 months ago

1.0.0-beta.0

9 months ago

1.0.0-beta.1

9 months ago

0.4.1

10 months ago

0.4.2

10 months ago

0.4.0-beta.0

11 months ago

0.4.0

11 months ago

0.3.0-beta.2

12 months ago

0.3.0-beta.3

12 months ago

0.3.0

12 months ago

0.3.0-beta.0

12 months ago

0.3.0-beta.1

12 months ago

0.3.0-beta.4

12 months ago

0.3.1

12 months ago

0.2.2-beta.0

1 year ago

0.2.1-beta.0

1 year ago

0.2.1

1 year ago

0.2.2

1 year ago

0.2.0-beta.0

1 year ago

0.2.0

1 year ago

0.1.6-beta.0

1 year ago

0.1.7-beta.0

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.5

1 year ago

0.1.2

2 years ago

0.1.0-beta.3

2 years ago

0.1.1-beta.0

2 years ago

0.1.0-beta.5

2 years ago

0.1.0-beta.4

2 years ago

0.1.0

2 years ago

0.1.1

2 years ago

0.1.0-beta.7

2 years ago

0.1.0-beta.6

2 years ago

0.1.0-beta.2

2 years ago

0.1.0-beta.1

2 years ago

0.1.0-beta.0

2 years ago