Bobby Hargett
09/25/2025, 12:04 PM@Module()
@ComponentScan("com.hssw.wallpaperprude")
class DefaultModule {
@Single
fun ucFetch() {
val flow: SharedFlow<Async<RedditClient>> = get()
val response = MutableSharedFlow<RedditUseCase?>(replay = 1).apply {
How do I get the val "flow" from Koin?
The @Single Flow is defined elsewhere in the moduleMark
10/08/2025, 7:27 AMinline fun <reified T> Scope.getDeferred(): Deferred<T> {
val qualifier = TypeQualifier(T::class)
return get(qualifier)
}
inline fun <reified T> Module.singleDeferred(
qualifier: Qualifier? = null,
createdAtStart: Boolean = false,
noinline suspendingDefinition: SuspendingDefinition<T>
): KoinDefinition<Deferred<T>> {
val definition: Definition<Deferred<T>> = { parametersHolder ->
get<CoroutineScope>().async {
suspendingDefinition(parametersHolder)
}
}
@Suppress("NAME_SHADOWING")
val qualifier = qualifier ?: TypeQualifier(T::class)
return single(qualifier, createdAtStart, definition)
}
...
module {
singleDeferred<Foo> { ... }
}
val fooDeferred = getDeferred<Foo>()