/
app.module.ts
48 lines (46 loc) · 1.81 KB
/
app.module.ts
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
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AuthModule } from './auth/auth.module';
import { PrismaModule } from 'nestjs-prisma';
import { ConfigModule } from '@nestjs/config';
import { PasswordService } from './auth/password/password.service';
import { QueriesModule } from './queries/queries.module';
import { QueryCollectionsModule } from './query-collections/query-collections.module';
import { TeamsModule } from './teams/teams.module';
import config from './common/config';
import { EventEmitterModule } from '@nestjs/event-emitter';
import { TeamMembershipsModule } from './team-memberships/team-memberships.module';
import { LoggerModule } from 'nestjs-pino';
import { StripeModule } from './stripe/stripe.module';
import { StripeWebhookController } from './stripe-webhook/stripe-webhook.controller';
import { WorkspacesModule } from './workspaces/workspaces.module';
if (process.env.NEW_RELIC_APP_NAME && process.env.NODE_ENV === 'production') {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const newrelicPino = require('@newrelic/pino-enricher');
}
@Module({
imports: [
...(process.env.NODE_ENV !== 'test' ? [LoggerModule.forRoot()] : []),
ConfigModule.forRoot({ isGlobal: true, load: [config] }),
PrismaModule.forRoot({
isGlobal: true,
prismaServiceOptions: {
middlewares: [], // configure your prisma middleware
},
}),
EventEmitterModule.forRoot({
verboseMemoryLeak: true,
}),
AuthModule,
QueriesModule,
QueryCollectionsModule,
TeamsModule,
TeamMembershipsModule,
StripeModule,
WorkspacesModule,
],
controllers: [AppController, StripeWebhookController],
providers: [AppService, PasswordService],
})
export class AppModule {}