import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Project } from '../projects/project.entity'; import { ReposResolver } from './repos.resolver'; import { ReposService } from './repos.service'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { ProjectsModule } from '../projects/projects.module'; import { EXCHANGE_REPO } from './repos.constants'; import { RabbitMQModule } from '@golevelup/nestjs-rabbitmq'; import { CommonsModule } from '../commons/commons.module'; @Module({ imports: [ TypeOrmModule.forFeature([Project]), ConfigModule, ProjectsModule, CommonsModule, RabbitMQModule.forRootAsync(RabbitMQModule, { imports: [ConfigModule], useFactory: (configService: ConfigService) => ({ uri: configService.get('db.rabbitmq.uri'), exchanges: [ { name: EXCHANGE_REPO, type: 'topic', options: { durable: true, autoDelete: true, }, }, ], }), inject: [ConfigService], }), ], providers: [ReposResolver, ReposService], exports: [ReposService], }) export class ReposModule {}