Files
passport/lib/passport.provider.ts
Дмитрий be1e21e699
Some checks failed
Publish / Publish Job (push) Failing after 37s
first commit
2026-03-27 10:38:23 +03:00

34 lines
882 B
TypeScript

import type { Provider } from '@nestjs/common'
import { PASSPORT_OPTIONS } from './constants'
import type { PassportAsyncOptions, PassportOptions } from './interfaces'
export function createPassportOptionsProvider(
options: PassportOptions
): Provider {
return {
provide: PASSPORT_OPTIONS,
useValue: Object.freeze({ ...options })
}
}
export function createPassportAsyncOptionsProvider(
options: PassportAsyncOptions
): Provider {
return {
provide: PASSPORT_OPTIONS,
useFactory: async (...args: any[]) => {
const resolved = await options.useFactory!(...args)
if (!resolved || typeof resolved.secretKey !== 'string') {
throw new Error(
'[Passport Module] "secretKey" обязателен для заполнения и должен быть строкой.'
)
}
return Object.freeze({ ...resolved })
},
inject: options.inject ?? []
}
}