twitch-clone/backend/src/core/core.module.ts
2025-07-21 06:47:16 +03:00

72 lines
2.7 KiB
TypeScript

import { getGraphQLConfig } from '@/src/core/config/graphql.config'
import { getLiveKitConfig } from '@/src/core/config/livekit.config'
import { AccountModule } from '@/src/module/auth/account/account.module'
import { DeactivateModule } from '@/src/module/auth/deactivate/deactivate.module'
import { PasswordRecoveryModule } from '@/src/module/auth/password-recovery/password-recovery.module'
import { ProfileModule } from '@/src/module/auth/profile/profile.module'
import { SessionModule } from '@/src/module/auth/session/session.module'
import { TotpModule } from '@/src/module/auth/totp/totp.module'
import { VerificationModule } from '@/src/module/auth/verification/verification.module'
import { CategoryModule } from '@/src/module/category/category.module'
import { ChannelModule } from '@/src/module/channel/channel.module'
import { ChatModule } from '@/src/module/chat/chat.module'
import { CronModule } from '@/src/module/cron/cron.module'
import { FollowModule } from '@/src/module/follow/follow.module'
import { LiveKitModule } from '@/src/module/libs/livekit/livekit.module'
import { MailModule } from '@/src/module/libs/mail/mail.module'
import { StorageModule } from '@/src/module/libs/storage/storage.module'
import { TelegramModule } from '@/src/module/libs/telegram/telegram.module'
import { NotificationModule } from '@/src/module/notification/notification.module'
import { IngressModule } from '@/src/module/stream/ingress/ingress.module'
import { StreamModule } from '@/src/module/stream/stream.module'
import { WebhookModule } from '@/src/module/webhook/webhook.module'
import { IS_DEV } from '@/src/shared/util/is-dev.util'
import { ApolloDriver } from '@nestjs/apollo'
import { Module } from '@nestjs/common'
import { ConfigModule, ConfigService } from '@nestjs/config'
import { GraphQLModule } from '@nestjs/graphql'
import { PrismaModule } from './prisma/prisma.module'
import { RedisModule } from './redis/redis.module'
@Module({
imports: [
ConfigModule.forRoot({
ignoreEnvFile: !IS_DEV,
isGlobal: true,
}),
GraphQLModule.forRootAsync({
driver: ApolloDriver,
imports: [ConfigModule],
useFactory: getGraphQLConfig,
inject: [ConfigService],
}),
PrismaModule,
RedisModule,
MailModule,
CronModule,
StorageModule,
LiveKitModule.registerAsync({
imports: [ConfigModule],
useFactory: getLiveKitConfig,
inject: [ConfigService],
}),
TelegramModule,
AccountModule,
SessionModule,
VerificationModule,
PasswordRecoveryModule,
TotpModule,
DeactivateModule,
ProfileModule,
StreamModule,
IngressModule,
WebhookModule,
CategoryModule,
ChatModule,
FollowModule,
ChannelModule,
NotificationModule,
],
})
export class CoreModule {}