diff --git a/src/search/elasticsearch/elasticsearch.module.ts b/src/search/elasticsearch/elasticsearch.module.ts new file mode 100644 index 00000000..4903e9f6 --- /dev/null +++ b/src/search/elasticsearch/elasticsearch.module.ts @@ -0,0 +1,19 @@ +import { Module } from '@nestjs/common'; +import { ConfigModule, ConfigService } from '@nestjs/config'; +import { ElasticsearchModule as NestElasticsearchModule } from '@nestjs/elasticsearch'; +import { createElasticsearchConfig } from '../../config/elasticsearch.config'; +import { ElasticsearchService } from './elasticsearch.service'; + +@Module({ + imports: [ + ConfigModule, + NestElasticsearchModule.registerAsync({ + imports: [ConfigModule], + inject: [ConfigService], + useFactory: createElasticsearchConfig, + }), + ], + providers: [ElasticsearchService], + exports: [ElasticsearchService, NestElasticsearchModule], +}) +export class SearchElasticsearchModule {} diff --git a/src/search/search.module.ts b/src/search/search.module.ts index ed84b072..3ed67c56 100644 --- a/src/search/search.module.ts +++ b/src/search/search.module.ts @@ -1,10 +1,8 @@ import { Module } from '@nestjs/common'; -import { ConfigModule, ConfigService } from '@nestjs/config'; -import { ElasticsearchModule } from '@nestjs/elasticsearch'; import { SearchController } from './search.controller'; import { SearchService } from './search.service'; -import { createElasticsearchConfig } from '../config/elasticsearch.config'; import { TenancyModule } from '../tenancy/tenancy.module'; +import { SearchElasticsearchModule } from './elasticsearch/elasticsearch.module'; import { MetricsModule } from '../utils/masking/metrics.module'; @@ -13,16 +11,7 @@ import { MetricsModule } from '../utils/masking/metrics.module'; * facets, autocomplete, and result caching when available. */ @Module({ - imports: [ - ConfigModule, - TenancyModule, - MetricsModule, - ElasticsearchModule.registerAsync({ - imports: [ConfigModule], - inject: [ConfigService], - useFactory: createElasticsearchConfig, - }), - ], + imports: [TenancyModule, MetricsModule, SearchElasticsearchModule], controllers: [SearchController], providers: [SearchService], exports: [SearchService],