I have a KMM project. It has one module
storage
, which implements a SqlDelight DB, per the
SqlDelight Documentation (it’s worth noting that docs specify using
implementation()
for dependencies). I have a second module
feature
which has a dependency on the
storage
module, like so:
sourceSets {
val commonMain by getting {
dependencies {
implementation(project(":shared:storage"))
}
}
}
In my
feature
module, I can see/import/use classes and objects from the SqlDelight library:
import app.cash.sqldelight.EnumColumnAdapter
...
val someValue = EnumColumnAdapter<MyEnum>().encode(someEnumValue)
That seems … not right? SqlDelight is an implementation detail of the
storage
module, and should not be exposed to other modules that have a dependency on
storage
. What am I missing here? I’m a bit of a novice with gradle, so perhaps it’s something obvious.