import { forwardRef, Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ListMasterData } from './entity/list-master.entity'; import { ListMasterItems } from './entity/list-master-items.entity'; import { ListMasterRepository } from './repository/list-master.repository'; import { ListMasterItemsRepository } from './repository/list-master-items.repository'; import { ListMasterService } from './service/list-master.service'; import { ListMasterItemService } from './service/list-master-item.service'; import { EntityModule } from '../meta/entity.module'; import { ListMasterController } from './controller/list-master.controller'; import { ThirdPartyModule } from '../third-party-module/third-party.module'; import { HttpModule } from '@nestjs/axios'; import { ListMasterRegistry } from './service/list-master-registry'; import { ListMasterEngine } from './service/list-master-engine'; import { MicroserviceClientsModule } from '../microservice-client/microservice-clients.module'; @Module({ imports: [ TypeOrmModule.forFeature([ListMasterData, ListMasterItems]), forwardRef(() => EntityModule), ThirdPartyModule, HttpModule, MicroserviceClientsModule, ], providers: [ {provide: 'ListMasterService', useClass: ListMasterService}, {provide: 'ListMasterItemService', useClass: ListMasterItemService}, ListMasterRepository, ListMasterItemsRepository, // Engine and registry ListMasterRegistry, ListMasterEngine, // Provide LIST_MASTER_EXTENSIONS (empty array by default) { provide: 'LIST_MASTER_EXTENSIONS', useValue: [] }, ], controllers: [ListMasterController], exports: [ 'ListMasterService', 'ListMasterItemService', ListMasterRegistry, ListMasterEngine, ], }) export class ListMasterModule {}