import { DynamicModule, Module } from "@nestjs/common"; import { JwtModule, JwtService } from "@nestjs/jwt"; import { TypeOrmModule } from "@nestjs/typeorm"; import { Configure } from "../config/configure"; import { AUTH_JWT_SECRET } from "../user/constants"; import * as entities from "../user/entities"; import { AuthService, TokenService, UserService } from "../user/services"; import { UserModule } from "../user/user.module"; import { ChatGateway } from "./gateway/chat.gateway"; @Module({}) export class ChatModule { static forRoot(configure: Configure): DynamicModule { const jwtSecret = configure.env().get(AUTH_JWT_SECRET, "11"); return { module: ChatModule, imports: [ JwtModule.register({ secret: jwtSecret, }), UserModule.forRoot(configure), TypeOrmModule.forFeature(Object.values(entities), "default"), ], providers: [ ChatGateway, UserService, JwtService, AuthService, TokenService, { provide: AUTH_JWT_SECRET, useValue: jwtSecret }, ], exports: [], }; } }