Я заинтересован в создании моей библиотеки Angular Starter с набором предопределенных компонентов с моими общими практиками.
Например, компонент с подпиской на события маршрутизатора и блокировкой пользовательского интерфейса. Другой пример - система модальных окон на основе маршрутов.
Но я хочу сохранить библиотечный код независимым от библиотек компонентов пользовательского интерфейса.
Например, я хочу, чтобы у меня была библиотека для запуска приложений и два компонента моста для Angular Material и PrimeNG.
В моем идеальном мире с пони я вижу следующее использование моей библиотеки:
@NgModule({
imports: [
MyBestAngularStarter.withUILibBridge(MaterialComponentsBridge)
]
})
export class AppModule {}
Таким образом, я буду использовать «абстрактные» компоненты в MyBestAngularStarter и буду определять их в каждой «мостовой» библиотеке.
Но это невозможно с современной архитектурой Angular. Каждый модуль должен неявно определять все импортируемые компоненты.
Существует способ инвертировать логику и импортировать стартер в каждом мосту, но таким образом каждый мост может определять собственный API, отличный от других. Это не хорошо. Цель состоит в том, чтобы пользовательский API оставался общим для всех мостов.
Может кто-нибудь дать мне несколько идей, как мне достичь своих целей?