-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Expand file tree
/
Copy pathnovu-bridge.module.ts
More file actions
94 lines (91 loc) · 2.85 KB
/
novu-bridge.module.ts
File metadata and controls
94 lines (91 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import { Module } from '@nestjs/common';
import {
AnalyticsService,
ClickHouseService,
CreateExecutionDetails,
CreateVariablesObject,
FeatureFlagsService,
GetDecryptedSecretKey,
GetLayoutUseCase,
GetLayoutUseCaseV0,
InMemoryLRUCacheService,
LayoutVariablesSchemaUseCase,
TraceLogRepository,
} from '@novu/application-generic';
import {
CommunityOrganizationRepository,
ControlValuesRepository,
EnvironmentRepository,
EnvironmentVariableRepository,
ExecutionDetailsRepository,
IntegrationRepository,
JobRepository,
LayoutRepository,
NotificationTemplateRepository,
} from '@novu/dal';
import { NovuClient, NovuHandler } from '@novu/framework/nest';
import { GetOrganizationSettings } from '../organization/usecases/get-organization-settings/get-organization-settings.usecase';
import { SharedModule } from '../shared/shared.module';
import { NovuBridgeController } from './novu-bridge.controller';
import { NovuBridgeClient } from './novu-bridge-client';
import { ConstructFrameworkWorkflow } from './usecases/construct-framework-workflow';
import {
ChatOutputRendererUsecase,
EmailOutputRendererUsecase,
InAppOutputRendererUsecase,
PushOutputRendererUsecase,
SmsOutputRendererUsecase,
} from './usecases/output-renderers';
import { DelayOutputRendererUsecase } from './usecases/output-renderers/delay-output-renderer.usecase';
import { DigestOutputRendererUsecase } from './usecases/output-renderers/digest-output-renderer.usecase';
import { ThrottleOutputRendererUsecase } from './usecases/output-renderers/throttle-output-renderer.usecase';
export const featureFlagsService = {
provide: FeatureFlagsService,
useFactory: async (): Promise<FeatureFlagsService> => {
const instance = new FeatureFlagsService();
await instance.initialize();
return instance;
},
};
@Module({
imports: [SharedModule],
controllers: [NovuBridgeController],
providers: [
{
provide: NovuClient,
useClass: NovuBridgeClient,
},
NovuHandler,
EnvironmentRepository,
EnvironmentVariableRepository,
NotificationTemplateRepository,
CommunityOrganizationRepository,
IntegrationRepository,
ControlValuesRepository,
LayoutRepository,
GetOrganizationSettings,
ConstructFrameworkWorkflow,
GetDecryptedSecretKey,
InAppOutputRendererUsecase,
EmailOutputRendererUsecase,
SmsOutputRendererUsecase,
ChatOutputRendererUsecase,
PushOutputRendererUsecase,
DelayOutputRendererUsecase,
DigestOutputRendererUsecase,
ThrottleOutputRendererUsecase,
AnalyticsService,
GetLayoutUseCaseV0,
LayoutVariablesSchemaUseCase,
CreateVariablesObject,
GetLayoutUseCase,
JobRepository,
ExecutionDetailsRepository,
TraceLogRepository,
ClickHouseService,
CreateExecutionDetails,
featureFlagsService,
InMemoryLRUCacheService,
],
})
export class NovuBridgeModule {}