All files / src/modules/api/auth auth.module.ts

0% Statements 0/4
100% Branches 0/0
0% Functions 0/1
0% Lines 0/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                                           
import { Config } from "@/modules/shared/config/types";
import { Services } from "@/types/Constants";
import { Module, Provider } from "@nestjs/common";
import { ConfigService } from "@nestjs/config";
import { JwtModule } from "@nestjs/jwt";
import { PassportModule } from "@nestjs/passport";
import { UserModule } from "../user/user.module";
import { AuthController } from "./auth.controller";
import { AuthService } from "./auth.service";
import { DiscordStrategy, JwtStrategy } from "./strategies";
 
const provider: Provider<AuthService> = {
	provide: Services.Auth,
	useClass: AuthService,
};
 
@Module({
	imports: [
		JwtModule.registerAsync({
			inject: [ConfigService],
			useFactory: async (config: ConfigService) => ({
				secret: config.getOrThrow<Config["API"]>("API").JwtSecret,
				signOptions: {
					expiresIn: config.getOrThrow<Config["API"]>("API").JwtExpire,
				},
			}),
		}),
		PassportModule.register({
			session: true,
		}),
		UserModule,
	],
	controllers: [AuthController],
	providers: [provider, DiscordStrategy, JwtStrategy],
	exports: [provider],
})
export class AuthModule {}