From 2696e663cfe14dc72fc5c43a7155a89be3af6d0b Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 14 Sep 2022 22:21:30 +0600 Subject: [PATCH] add RandomQualifier --- koin/src/commonMain/kotlin/FactoryWithRandomQualifier.kt | 5 +---- koin/src/commonMain/kotlin/RandomQualifier.kt | 6 ++++++ koin/src/commonMain/kotlin/SingleWithRandomQualifier.kt | 5 +---- .../jvmMain/kotlin/FactoryWithBindsAndRandomQualifier.kt | 5 +---- .../src/jvmMain/kotlin/SingleWithBindsAndRandomQualifier.kt | 3 +-- 5 files changed, 10 insertions(+), 14 deletions(-) create mode 100644 koin/src/commonMain/kotlin/RandomQualifier.kt diff --git a/koin/src/commonMain/kotlin/FactoryWithRandomQualifier.kt b/koin/src/commonMain/kotlin/FactoryWithRandomQualifier.kt index f307eadc8d2..e00675e1ff8 100644 --- a/koin/src/commonMain/kotlin/FactoryWithRandomQualifier.kt +++ b/koin/src/commonMain/kotlin/FactoryWithRandomQualifier.kt @@ -1,10 +1,7 @@ package dev.inmo.micro_utils.koin -import com.benasher44.uuid.uuid4 import org.koin.core.definition.Definition -import org.koin.core.instance.InstanceFactory import org.koin.core.module.Module -import org.koin.core.qualifier.StringQualifier /** * Will be useful in case you need to declare some singles with one type several types, but need to separate them and do @@ -12,4 +9,4 @@ import org.koin.core.qualifier.StringQualifier */ inline fun Module.factoryWithRandomQualifier( noinline definition: Definition -) = factory(uuid4().toString(), definition) +) = factory(RandomQualifier(), definition) diff --git a/koin/src/commonMain/kotlin/RandomQualifier.kt b/koin/src/commonMain/kotlin/RandomQualifier.kt new file mode 100644 index 00000000000..9b5b1a39c62 --- /dev/null +++ b/koin/src/commonMain/kotlin/RandomQualifier.kt @@ -0,0 +1,6 @@ +package dev.inmo.micro_utils.koin + +import com.benasher44.uuid.uuid4 +import org.koin.core.qualifier.StringQualifier + +fun RandomQualifier(randomFun: () -> String = { uuid4().toString() }) = StringQualifier(randomFun()) diff --git a/koin/src/commonMain/kotlin/SingleWithRandomQualifier.kt b/koin/src/commonMain/kotlin/SingleWithRandomQualifier.kt index f39aef61aea..ef7068076e2 100644 --- a/koin/src/commonMain/kotlin/SingleWithRandomQualifier.kt +++ b/koin/src/commonMain/kotlin/SingleWithRandomQualifier.kt @@ -1,10 +1,7 @@ package dev.inmo.micro_utils.koin -import com.benasher44.uuid.uuid4 import org.koin.core.definition.Definition -import org.koin.core.instance.InstanceFactory import org.koin.core.module.Module -import org.koin.core.qualifier.StringQualifier /** * Will be useful in case you need to declare some singles with one type several types, but need to separate them and do @@ -13,4 +10,4 @@ import org.koin.core.qualifier.StringQualifier inline fun Module.singleWithRandomQualifier( createdAtStart: Boolean = false, noinline definition: Definition -) = single(uuid4().toString(), createdAtStart, definition) +) = single(RandomQualifier(), createdAtStart, definition) diff --git a/koin/src/jvmMain/kotlin/FactoryWithBindsAndRandomQualifier.kt b/koin/src/jvmMain/kotlin/FactoryWithBindsAndRandomQualifier.kt index 08144cf8861..6231bec8b40 100644 --- a/koin/src/jvmMain/kotlin/FactoryWithBindsAndRandomQualifier.kt +++ b/koin/src/jvmMain/kotlin/FactoryWithBindsAndRandomQualifier.kt @@ -1,16 +1,13 @@ package dev.inmo.micro_utils.koin -import com.benasher44.uuid.uuid4 import org.koin.core.definition.Definition import org.koin.core.instance.InstanceFactory import org.koin.core.module.Module -import org.koin.dsl.binds import kotlin.reflect.KClass -import kotlin.reflect.full.allSuperclasses inline fun Module.factoryWithRandomQualifierAndBinds( bindFilter: (KClass<*>) -> Boolean = { true }, noinline definition: Definition ): Pair> { - return factoryWithBinds(uuid4().toString(), bindFilter, definition) + return factoryWithBinds(RandomQualifier(), bindFilter, definition) } diff --git a/koin/src/jvmMain/kotlin/SingleWithBindsAndRandomQualifier.kt b/koin/src/jvmMain/kotlin/SingleWithBindsAndRandomQualifier.kt index 9a5aeed6c79..3839a1dd1c3 100644 --- a/koin/src/jvmMain/kotlin/SingleWithBindsAndRandomQualifier.kt +++ b/koin/src/jvmMain/kotlin/SingleWithBindsAndRandomQualifier.kt @@ -1,6 +1,5 @@ package dev.inmo.micro_utils.koin -import com.benasher44.uuid.uuid4 import org.koin.core.definition.Definition import org.koin.core.instance.InstanceFactory import org.koin.core.module.Module @@ -11,5 +10,5 @@ inline fun Module.singleWithRandomQualifierAndBinds( bindFilter: (KClass<*>) -> Boolean = { true }, noinline definition: Definition ): Pair> { - return singleWithBinds(uuid4().toString(), createdAtStart, bindFilter, definition) + return singleWithBinds(RandomQualifier(), createdAtStart, bindFilter, definition) }