Skip to content

Commit

Permalink
[Issue-238] Add Koin
Browse files Browse the repository at this point in the history
Splitties#238

[Summary]
Koin is a common DI / Service Locator framework for KMP, and we'd like
to migrate to refreshVersions completely.
https://insert-koin.io/docs/setup/v3
How we're using it for safe multithreading on native in KaMP Kit:
https://github.com/touchlab/KaMPKit/blob/main/shared/src/commonMain/kotlin/co/touchlab/kampkit/Koin.kt

[Fix]
Add the Koin dependencies.

[Testing]
- `./gradlew :refreshVersions:check`
- inspections that the coordinates are generated in
  dependencies-mapping-validated.txt and
bundled-dependencies-validated.txt.
  • Loading branch information
brady-aiello committed Jul 15, 2021
1 parent 7418b47 commit a4a582f
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 1 deletion.
Expand Up @@ -6,6 +6,7 @@ import CashApp
import Firebase
import Google
import JakeWharton
import Koin
import Kotlin
import KotlinX
import Ktor
Expand Down Expand Up @@ -56,7 +57,8 @@ internal fun getArtifactNameToConstantMapping(excludeBomDependencies: Boolean =
Square,
Ktor,
Testing,
COIL
COIL,
Koin
).flatMap { objectInstance ->
getArtifactNameToConstantMappingFromObject(
objectInstance,
Expand Down
36 changes: 36 additions & 0 deletions plugins/dependencies/src/main/kotlin/dependencies/Koin.kt
@@ -0,0 +1,36 @@
@file:Suppress("PackageDirectoryMismatch", "SpellCheckingInspection", "unused")

import org.gradle.api.Incubating
import org.gradle.kotlin.dsl.IsNotADependency

@Incubating
object Koin {
val core = Core
val junit = JUnit
val android = Android
val ktor = Ktor

private const val artifactPrefix = "io.insert-koin:koin"

object Core : IsNotADependency {
const val core = "$artifactPrefix-core:_"
const val test = "$artifactPrefix-test:_"
}

object JUnit : IsNotADependency {
const val junit4 = "$artifactPrefix-test-junit4:_"
const val junit5 = "$artifactPrefix-test-junit5:_"
}

object Android : IsNotADependency {
const val android = "$artifactPrefix-android:_"
const val androidCompat = "$artifactPrefix-android-compat:_"
const val workManager = "$artifactPrefix-androidx-workmanager:_"
const val compose = "$artifactPrefix-androidx-compose:_"
}

object Ktor : IsNotADependency {
const val ktor = "$artifactPrefix-ktor:_"
const val logger = "$artifactPrefix-logger-slf4j:_"
}
}
Expand Up @@ -510,6 +510,16 @@ io.coil-kt:coil-base
io.coil-kt:coil-gif
io.coil-kt:coil-svg
io.coil-kt:coil-video
io.insert-koin:koin-android
io.insert-koin:koin-android-compat
io.insert-koin:koin-androidx-compose
io.insert-koin:koin-androidx-workmanager
io.insert-koin:koin-core
io.insert-koin:koin-ktor
io.insert-koin:koin-logger-slf4j
io.insert-koin:koin-test
io.insert-koin:koin-test-junit4
io.insert-koin:koin-test-junit5
io.kotest.extensions:kotest-extensions-allure
io.kotest.extensions:kotest-extensions-embedded-kafka
io.kotest.extensions:kotest-extensions-gherkin
Expand Down
Expand Up @@ -642,6 +642,16 @@ io.coil-kt..coil-gif=COIL.gif
io.coil-kt..coil-svg=COIL.svg
io.coil-kt..coil-video=COIL.video
io.coil-kt..coil=COIL
io.insert-koin..koin-android-compat=Koin.android.androidCompat
io.insert-koin..koin-android=Koin.android.android
io.insert-koin..koin-androidx-compose=Koin.android.compose
io.insert-koin..koin-androidx-workmanager=Koin.android.workManager
io.insert-koin..koin-core=Koin.core.core
io.insert-koin..koin-ktor=Koin.ktor.ktor
io.insert-koin..koin-logger-slf4j=Koin.ktor.logger
io.insert-koin..koin-test-junit4=Koin.junit.junit4
io.insert-koin..koin-test-junit5=Koin.junit.junit5
io.insert-koin..koin-test=Koin.core.test
io.kotest..kotest-assertions-arrow=Testing.kotest.assertions.arrow
io.kotest..kotest-assertions-compiler=Testing.kotest.assertions.compiler
io.kotest..kotest-assertions-core=Testing.kotest.assertions.core
Expand Down

0 comments on commit a4a582f

Please sign in to comment.