-
Notifications
You must be signed in to change notification settings - Fork 408
/
app.module.ts
55 lines (54 loc) · 1.74 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
49
50
51
52
53
54
55
import { Module } from '@nestjs/common';
import { buildContext } from 'graphql-passport';
import { GraphqlDistributedModule } from 'nestjs-graphql-gateway';
import { StripeModule } from 'nestjs-stripe';
import { BaseModule, CoreModule, MongoHealthIndicator } from '@graphqlcqrs/core';
import { AppConfig } from '@graphqlcqrs/common/services/yaml.service';
import { TerminusModule } from '@nestjs/terminus';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { PlanModule } from './plan/plan.module';
import { Plan } from './types';
import { HealthOptionsService } from './health-options.service';
import { CardModule } from './card/card.module';
import { BillingModule } from './billing/billing.module';
import { InvoiceModule } from './invoice/invoice.module';
import { SubscriptionModule } from './subscription/subscription.module';
@Module({
imports: [
GraphqlDistributedModule.forRoot({
autoSchemaFile: 'graphs/plan.gql',
introspection: true,
buildSchemaOptions: {
orphanedTypes: [Plan],
},
playground: {
workspaceName: 'GRAPHQL SERVICE PLAN',
settings: {
'editor.theme': 'light',
},
},
context: ({ req, res }) => buildContext({ req, res }),
}),
CoreModule,
StripeModule.forRoot({
apiKey: AppConfig.payment?.stripe?.secretKey,
}),
TerminusModule.forRootAsync({
imports: [AppModule],
useClass: HealthOptionsService,
}),
BillingModule,
PlanModule,
CardModule,
InvoiceModule,
SubscriptionModule,
],
controllers: [AppController],
providers: [
AppService,
MongoHealthIndicator,
],
exports: [MongoHealthIndicator],
})
export class AppModule extends BaseModule {}