plugins { kotlin("multiplatform") } kotlin { jvm() js { browser() // necessary for local dependency from JS UI module } sourceSets { all { languageSettings.useExperimentalAnnotation("kotlin.RequiresOptIn") } val commonMain by getting { dependencies { api(projects.swCommonModel) api(libs.krossbow.stomp.kxserialization) implementation(libs.kotlinx.serialization.json) implementation(libs.kotlinx.coroutines.core) } } val commonTest by getting { dependencies { implementation(kotlin("test-common")) implementation(kotlin("test-annotations-common")) } } val jvmTest by getting { dependencies { implementation(kotlin("test")) implementation(kotlin("test-junit")) } } val jsMain by getting { dependencies { implementation(npm("text-encoding", "0.7.0")) // required by krossbow, because required by kotlinx-io } } val jsTest by getting { dependencies { implementation(kotlin("test-js")) } } } }