Я не вижу здесь необходимости в Динамическом модуле.
Действительно, нужно только, чтобы служба, которую вы хотите внедрить в другую сущность, управляемую NestJs, была экспортирована из вашего AuthModule и AuthModuleимпортированные в Модуль, вы хотите, чтобы другие сущности внедрили ваш AuthService.
import { Module } from '@nestjs/common'
import { AuthService } from './AuthService'
@Module({
providers: [
AuthService,
// ... others
],
exports: [
AuthService
]
})
export class CommonModule {}
Затем в вашем зависимом классе (скажем, другом контроллере, но это может быть что-то вроде GraphQL Resolver, Interceptor или что-то еще), вы объявляетезависимость от AuthService.
import { AuthService } from '../auth/AuthService'
import { Dependencies } from '@nestjs/common'
@Dependencies(AuthService)
export class DependentController {
constructor (authService) {
this.authService = authService
}
}
Наконец, чтобы AuthService был доступен для зависимого контроллера, он должен быть импортирован в тот же модуль, который предоставляется контроллером.
import { Module } from '@nestjs/common'
import { CommonModule } from '../auth/CommonModule'
import { DependentController } from './controller/DependentController'
@Module({
imports: [
CommonModule,
// ...others
],
providers: [
DependentController,
// ...others
]
})
export class ControllerModule {}
Я понимаю, что синтаксис мог бы быть короче и без использования декоратора зависимостей в машинописи, однако суть дела заключается в экспорте общего сервиса из предоставляемого им модуля, а затем в импорте этого модуля в модуль других классов, которым он требуется.