Event-Emitter - динамическая либа

This commit is contained in:
Pavel Gnedov 2022-06-18 19:19:17 +07:00
parent a98326269e
commit 16d15b27ca
3 changed files with 28 additions and 12 deletions

View file

@ -1,4 +1,4 @@
import { Module } from '@nestjs/common';
import { DynamicModule, Module } from '@nestjs/common';
import { EventEmitterService } from './event-emitter.service';
import { RedmineEventsGateway } from './events/redmine-events.gateway';
import { ServeStaticModule } from '@nestjs/serve-static';
@ -7,14 +7,22 @@ import MainConfig from './configs/main-config';
import { ConfigModule } from '@nestjs/config';
import { RedmineDataLoader } from './redmine-data-loader/redmine-data-loader';
import { MainController } from './main/main.controller';
import { MainConfigModel } from './models/main-config-model';
@Module({
@Module({})
export class EventEmitterModule {
static register(params?: { config?: MainConfigModel }): DynamicModule {
return {
module: EventEmitterModule,
imports: [
ServeStaticModule.forRoot({ rootPath: join(__dirname, '..', 'client') }),
ConfigModule.forRoot({ load: [MainConfig] }),
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'client'),
}),
ConfigModule.forRoot({ load: [() => params?.config || MainConfig()] }),
],
providers: [EventEmitterService, RedmineEventsGateway, RedmineDataLoader],
exports: [EventEmitterService, RedmineEventsGateway, RedmineDataLoader],
controllers: [MainController],
})
export class EventEmitterModule {}
};
}
}

View file

@ -18,7 +18,9 @@ import { RedmineDataLoaderModule } from '@app/redmine-data-loader';
@Module({
imports: [
EventEmitterModule,
EventEmitterModule.register({
config: configuration().redmineIssueEventEmitterConfig,
}),
RedmineIssuesCacheWriterModule.register({
issueDocumentScopeProvider: Issues.getDatasource,
}),

View file

@ -1,3 +1,7 @@
import RedmineIssueEventEmitterConfigLoader from '@app/event-emitter/configs/main-config';
const redmineIssueEventEmitterConfig = RedmineIssueEventEmitterConfigLoader();
const appConfig = {
couchDbUrl:
process.env['ELTEX_REDMINE_HELPER_COUCHDB_URL'] || 'http://localhost:5984',
@ -10,6 +14,8 @@ const appConfig = {
process.env['ELTEX_REDMINE_HELPER_COUCHDB_USERS_DB_NAME'] ||
'redmine_users',
},
redmineIssueEventEmitterConfig: redmineIssueEventEmitterConfig,
};
export default () => {