У меня есть AuthModule
в обобщенной библиотеке, которая требует взаимодействия с UserModule
, аналогичным документам .
Что я хочу сделать, это определить интерфейс, который UserService
должен придерживаться вместо фактической реализации.Это оставит детали реализации пользователям библиотеки.
Я пробовал несколько разных подходов, таких как наличие строкового токена APP_USER_SERVICE
, первоначально null
, а затем его переопределение разработчиком, но это казалосьчтобы столкнуться с трудностями, вводя значение null
и не вводя фактическое значение.
Еще один подход, который я пробовал, который мне нравится, - это AuthModule.withUserModule(UserModule)
, где AuthModule
импортирует динамический UserModule
и ищеттокен APP_USER_SERVICE
, определенный реализацией UserModule
.Проблема с этим подходом в том, что кажется, что он попадает в ад круговой зависимости.
Я новичок в проекте NestJS, поэтому, возможно, я упускаю что-то очевидное.Спасибо за любые указания о том, как организовать этот рабочий процесс, спасибо.
Вкратце, это структура, к которой я иду:
-> = зависит от
БИБЛИОТЕКА:
AuthModule
-> IUserModule
ПОЛЬЗОВАТЕЛЬ:
AuthModule.withUserModule(UserModule)
для заполнения IUserModule
требования.
UserModule
-> AuthModule
Вот код (сломанный атм):
Библиотека
Пример реализации