Как указать scope для общего модуля
В приложении есть CoreComponent и несколько FeatureComponent. Каждый FeatureComponent имеет свой Scope. Есть модуль(в коде NavigationModule), который хотелось бы использовать во всех Feature-компонентах и чтобы модуль провайдил только один экземпляр объектов на feature-scope.
Core:
@Singleton
@Component
interface CoreComponent
@Module
class NavigationModule() {
@Provides
fun provideRouter(): Router = RouterImpl()
}
Feature1:
@Scope
@Retention(AnnotationRetention.RUNTIME)
annotation class Feature1Scope
@Feature1Scope
@Component(
modules = [NavigationModule::class],
dependencies = [CoreComponent::class]
)
interface Feature1Component : CoreComponent {}
Как сделать так, чтобы в FeatureComponent провайдился только один экземпляр Router-а на Feature1Scope без копипасты модуля для каждого feature и указания скопа?