-
-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathapp.module.ts
More file actions
127 lines (126 loc) · 5.48 KB
/
app.module.ts
File metadata and controls
127 lines (126 loc) · 5.48 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { ScheduleModule } from '@nestjs/schedule';
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
import { AICoreModule } from './ai-core/ai-core.module.js';
import { AppController } from './app.controller.js';
import { GlobalDatabaseContext } from './common/application/global-database-context.js';
import { BaseType, UseCaseType } from './common/data-injection.tokens.js';
import { AIModule } from './entities/ai/ai.module.js';
import { ApiKeyModule } from './entities/api-key/api-key.module.js';
import { CedarAuthorizationModule } from './entities/cedar-authorization/cedar-authorization.module.js';
import { CompanyFaviconModule } from './entities/company-favicon/company-favicon.module.js';
import { CompanyInfoModule } from './entities/company-info/company-info.module.js';
import { CompanyLogoModule } from './entities/company-logo/company-logo.module.js';
import { CompanyTabTitleModule } from './entities/company-tab-title/company-tab-title.module.js';
import { ConnectionModule } from './entities/connection/connection.module.js';
import { ConnectionPropertiesModule } from './entities/connection-properties/connection-properties.module.js';
import { ConversionModule } from './entities/convention/conversion.module.js';
import { CronJobsModule } from './entities/cron-jobs/cron-jobs.module.js';
import { CustomFieldModule } from './entities/custom-field/custom-field.module.js';
import { DemoDataModule } from './entities/demo-data/demo-deta.module.js';
import { EmailModule } from './entities/email/email/email.module.js';
import { GroupModule } from './entities/group/group.module.js';
import { LoggingModule } from './entities/logging/logging.module.js';
import { PermissionModule } from './entities/permission/permission.module.js';
import { S3WidgetModule } from './entities/s3-widget/s3-widget.module.js';
import { SharedJobsModule } from './entities/shared-jobs/shared-jobs.module.js';
import { TableModule } from './entities/table/table.module.js';
import { TableTriggersModule } from './entities/table-actions/table-action-rules-module/action-rules.module.js';
import { TableActionModule } from './entities/table-actions/table-actions-module/table-action.module.js';
import { TableCategoriesModule } from './entities/table-categories/table-categories.module.js';
import { TableFiltersModule } from './entities/table-filters/table-filters.module.js';
import { TableLogsModule } from './entities/table-logs/table-logs.module.js';
import { TableSchemaModule } from './entities/table-schema/table-schema.module.js';
import { TableSettingsModule } from './entities/table-settings/common-table-settings/table-settings.module.js';
import { PersonalTableSettingsModule } from './entities/table-settings/personal-table-settings/personal-table-settings.module.js';
import { UserModule } from './entities/user/user.module.js';
import { UserActionModule } from './entities/user-actions/user-action.module.js';
import { UserSecretModule } from './entities/user-secret/user-secret.module.js';
import { SignInAuditModule } from './entities/user-sign-in-audit/sign-in-audit.module.js';
import { DashboardModule } from './entities/visualizations/dashboard/dashboards.module.js';
import { PanelModule } from './entities/visualizations/panel/panel.module.js';
import { PanelPositionModule } from './entities/visualizations/panel-position/panel-position.module.js';
import { TableWidgetModule } from './entities/widget/table-widget.module.js';
import { SaaSGatewayModule } from './microservices/gateways/saas-gateway.ts/saas-gateway.module.js';
import { SaasModule } from './microservices/saas-microservice/saas.module.js';
import { AppLoggerMiddleware } from './middlewares/logging-middleware/app-logger-middlewate.js';
import { SelfHostedOperationsModule } from './selfhosted-operations/selhosted-operations.module.js';
import { DatabaseModule } from './shared/database/database.module.js';
import { SharedModule } from './shared/shared.module.js';
import { GetHelloUseCase } from './use-cases-app/get-hello.use.case.js';
@Module({
imports: [
ScheduleModule.forRoot(),
ThrottlerModule.forRoot({
throttlers: [
{
ttl: 60000,
limit: 200,
},
],
}),
CedarAuthorizationModule,
AICoreModule,
ConnectionModule,
ConnectionPropertiesModule,
ConversionModule,
CustomFieldModule,
GroupModule,
PermissionModule,
TableLogsModule,
TableModule,
TableSettingsModule,
TableWidgetModule,
UserModule,
UserActionModule,
CronJobsModule,
DatabaseModule,
SharedModule,
TableActionModule,
SaasModule,
CompanyInfoModule,
SaaSGatewayModule,
TableTriggersModule,
ApiKeyModule,
AIModule,
EmailModule,
CompanyLogoModule,
CompanyFaviconModule,
CompanyTabTitleModule,
TableFiltersModule,
DemoDataModule,
LoggingModule,
SharedJobsModule,
TableCategoriesModule,
UserSecretModule,
TableSchemaModule,
SignInAuditModule,
PersonalTableSettingsModule,
S3WidgetModule,
PanelModule,
DashboardModule,
PanelPositionModule,
SelfHostedOperationsModule.register(),
],
controllers: [AppController],
providers: [
{
provide: APP_GUARD,
useClass: ThrottlerGuard,
},
{
provide: BaseType.GLOBAL_DB_CONTEXT,
useClass: GlobalDatabaseContext,
},
{
provide: UseCaseType.GET_HELLO,
useClass: GetHelloUseCase,
},
],
})
export class ApplicationModule implements NestModule {
configure(consumer: MiddlewareConsumer): void {
consumer.apply(AppLoggerMiddleware).forRoutes('*');
}
}