generator-nest-js-boilerplate
Version:
This generator will help you to build your own Nest.js Mongodb API using TypeScript 4
59 lines (55 loc) • 1.75 kB
text/typescript
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { MailerModule } from '@nestjs-modules/mailer';
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter';
import V1Module from '@v1/v1.module';
import { MongooseModule } from '@nestjs/mongoose';
import AppController from './app.controller';
import AppService from './app.service';
({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
MongooseModule.forRoot(process.env.MONGODB_URL as string, {
// automatically try to reconnect when it loses connection
autoReconnect: true,
useCreateIndex: true,
// reconnect every reconnectInterval milliseconds
// for reconnectTries times
reconnectTries: Number.MAX_VALUE,
reconnectInterval: 1000,
// flag to allow users to fall back to the old
// parser if they find a bug in the new parse
useNewUrlParser: true,
useUnifiedTopology: true,
}),
MailerModule.forRootAsync({
useFactory: (cfg: ConfigService) => ({
transport: {
host: cfg.get('MAILER_HOST'),
port: Number(cfg.get('MAILER_PORT')),
secure: false,
auth: {
user: cfg.get('MAILER_USERNAME'),
pass: cfg.get('MAILER_PASSWORD'),
},
},
defaults: {
from: cfg.get('MAILER_FROM_EMAIL'),
},
template: {
adapter: new HandlebarsAdapter(),
options: {
strict: true,
},
},
}),
inject: [ConfigService],
}),
V1Module,
],
controllers: [AppController],
providers: [AppService],
})
export default class AppModule {}