import { Module, DynamicModule, HttpModule } from '@nestjs/common'; import { LaunchpadAuthController } from './controllers/launchpad-auth.controller'; import { LaunchpadAccessGuard } from './guards/launchpad-access.guard'; import { LaunchpadApiClientAuthConfig } from './models/launchpad.auth.config'; import { LaunchpadApiService } from './services/launchpad-api/launchpad-api-service'; @Module({}) export class LaunchpadAuthModule { static register(config: LaunchpadApiClientAuthConfig): DynamicModule { const ConfigProvider = { provide: 'LAUNCHPAD_AUTH_CONFIG', useValue: config }; return { module: LaunchpadAuthModule, imports: [HttpModule], providers: [ ConfigProvider, LaunchpadApiService, LaunchpadAccessGuard, ], exports: [LaunchpadAccessGuard, ConfigProvider, LaunchpadApiService], controllers: [LaunchpadAuthController], }; } }