From ea9dbf2371f565a8b230350e6c7386dca8075c78 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 25 May 2023 21:12:21 +0600 Subject: [PATCH] Koin.get and Scope.get with opportunity to get dependency by its type and definition --- .../commonMain/kotlin/GetWithDefinition.kt | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 koin/src/commonMain/kotlin/GetWithDefinition.kt diff --git a/koin/src/commonMain/kotlin/GetWithDefinition.kt b/koin/src/commonMain/kotlin/GetWithDefinition.kt new file mode 100644 index 00000000000..32cc88bad9e --- /dev/null +++ b/koin/src/commonMain/kotlin/GetWithDefinition.kt @@ -0,0 +1,40 @@ +package dev.inmo.micro_utils.koin + +import org.koin.core.Koin +import org.koin.core.definition.BeanDefinition +import org.koin.core.definition.KoinDefinition +import org.koin.core.instance.InstanceFactory +import org.koin.core.parameter.ParametersDefinition +import org.koin.core.scope.Scope + +fun Koin.get(definition: BeanDefinition, parameters: ParametersDefinition? = null): T = get( + definition.primaryType, + definition.qualifier, + parameters +) + +fun Koin.get(definition: InstanceFactory, parameters: ParametersDefinition? = null): T = get( + definition.beanDefinition, + parameters +) + +fun Koin.get(definition: KoinDefinition, parameters: ParametersDefinition? = null): T = get( + definition.factory, + parameters +) + +fun Scope.get(definition: BeanDefinition, parameters: ParametersDefinition? = null): T = get( + definition.primaryType, + definition.qualifier, + parameters +) + +fun Scope.get(definition: InstanceFactory, parameters: ParametersDefinition? = null): T = get( + definition.beanDefinition, + parameters +) + +fun Scope.get(definition: KoinDefinition, parameters: ParametersDefinition? = null): T = get( + definition.factory, + parameters +)