Can someone share a snippet of using typed qualifi...
# koin
r
Can someone share a snippet of using typed qualifiers in koin? i don't see any documentations on it and everything i'm trying so far isn't working. Left image is what i'm trying to do in my module, and right image is the site of injection but I get no definition exceptions.
👍 1
d
I think it’s missing declaration for
AddDiaryUseCase
, so something like this:
Copy code
fun useCaseModule() = module {
    singleOf(::LocalDataSource) {
        bind<DataSource>()
        named<LocalDataSourceQualifier>()
    }
    singleOf(::RemoteDataSource) {
        bind<DataSource>()
        named<RemoteDataSourceQualifier>()
    }
    single {
        AddDiaryUseCase(get(named<LocalDataSourceQualifier>()), get(), get())
    }
}
but if you need different
AddDiaryUseCase
instance based on
DataSource
type, probably it’s better like this:
Copy code
fun useCaseModule() = module {
    singleOf(::LocalDataSource) {
        bind<DataSource>()
    }
    singleOf(::RemoteDataSource) {
        bind<DataSource>()
    }
    single(named<LocalDataSource>()) {
        AddDiaryUseCase(get<LocalDataSource>(), get(), get())
    }
    single(named<RemoteDataSource>()) {
        AddDiaryUseCase(get<RemoteDataSource>(), get(), get())
    }
}
and you can later get/inject it with
get(named<LocalDataSource>())
or
inject(named<RemoteDataSource>())
, so you wont need
LocalDataSourceQualifier
and
RemoteDataSourceQualifier
👍 2