curioustechizen
08/16/2024, 1:20 PMcurioustechizen
08/16/2024, 1:23 PM:shared
module. One of its indirect (transitive) dependencies :feature:foo
has code like this:
@JvmInline
@ObjCName("ClassId", exact = true)
interface ClassId {
val value: String
companion object {
fun from(value: String): ClassId = ClassIdImpl(value)
}
}
private data class ClassIdImpl(override val value: String) : ClassId
curioustechizen
08/16/2024, 1:24 PMClassIdCompanion.shared.fom(value: "Blah")
on the Swift side.curioustechizen
08/16/2024, 1:25 PM:shared
module
export(projects.feature.foo)
// Also, instead of implementation, I need to use an api dependency
api(projects.feature.foo)
curioustechizen
08/16/2024, 1:26 PMcurioustechizen
08/16/2024, 1:28 PMexport
and replace my api
with an implementation
dependency?curioustechizen
08/16/2024, 1:29 PMextension ClassId {
static func from(_ value: String) -> ClassId {
return ClassIdCompanion.shared.from(value: value)
}
}
curioustechizen
08/16/2024, 1:32 PM:shared
module instead? Will that remove the need for the export
and the api
dependency? (since that's the module where I apply the SKIE plugin)curioustechizen
08/16/2024, 3:20 PMexport
from my build.gradle.kts then the Swift files in the shared sourceSet do not compile.kpgalligan
08/16/2024, 3:55 PMfun classIdFactory(value: String): ClassId = ClassId.from(value)
Not pretty, but that'll solve your problem.kpgalligan
08/16/2024, 3:57 PMcurioustechizen
08/17/2024, 3:10 AMkpgalligan
08/17/2024, 3:16 AM