35 lines
1007 B
TypeScript
35 lines
1007 B
TypeScript
import { type DynamicModule, Global, Module } from '@nestjs/common'
|
|
|
|
import { PASSPORT_OPTIONS } from './constants'
|
|
import type { PassportAsyncOptions, PassportOptions } from './interfaces'
|
|
import {
|
|
createPassportAsyncOptionsProvider,
|
|
createPassportOptionsProvider
|
|
} from './passport.provider'
|
|
import { PassportService } from './passport.service'
|
|
|
|
@Global()
|
|
@Module({})
|
|
export class PassportModule {
|
|
public static register(options: PassportOptions): DynamicModule {
|
|
const optionsProvider = createPassportOptionsProvider(options)
|
|
|
|
return {
|
|
module: PassportModule,
|
|
providers: [optionsProvider, PassportService],
|
|
exports: [PassportService, PASSPORT_OPTIONS]
|
|
}
|
|
}
|
|
|
|
public static registerAsync(options: PassportAsyncOptions): DynamicModule {
|
|
const optionsProvider = createPassportAsyncOptionsProvider(options)
|
|
|
|
return {
|
|
module: PassportModule,
|
|
imports: options.imports ?? [],
|
|
providers: [optionsProvider, PassportService],
|
|
exports: [PassportService, PASSPORT_OPTIONS]
|
|
}
|
|
}
|
|
}
|