diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinMultiplatform.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinMultiplatform.kt index f3bf46fc2..cb511ed06 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinMultiplatform.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinMultiplatform.kt @@ -21,6 +21,8 @@ import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.konan.target.HostManager @@ -28,6 +30,7 @@ import org.jetbrains.kotlin.konan.target.HostManager * A plugin that applies the Kotlin Multiplatform plugin and configures it for the project. * https://github.com/cashapp/sqldelight/blob/master/buildLogic/multiplatform-convention/src/main/kotlin/app/cash/sqldelight/multiplatform/MultiplatformConventions.kt */ +@OptIn(ExperimentalWasmDsl::class) internal fun Project.configureKotlinMultiplatform() { extensions.configure { // Enable native group by default @@ -37,19 +40,17 @@ internal fun Project.configureKotlinMultiplatform() { jvm() androidTarget() - js { + wasmJs { browser { - testTask { - useKarma { - useChromeHeadless() + commonWebpackConfig { + devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { + static = (static ?: mutableListOf()).apply { + // Serve sources to debug inside browser + add(project.projectDir.path) + } } } } - compilations.configureEach { - kotlinOptions { - moduleKind = "umd" - } - } } // tier 1 diff --git a/core/common/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatchersComponent.kt b/core/common/src/wasmJsMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatchersComponent.kt similarity index 100% rename from core/common/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatchersComponent.kt rename to core/common/src/wasmJsMain/kotlin/com/google/samples/apps/nowinandroid/core/di/DispatchersComponent.kt diff --git a/core/database/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt b/core/database/src/wasmJsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt similarity index 100% rename from core/database/src/jsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt rename to core/database/src/wasmJsMain/kotlin/com/google/samples/apps/nowinandroid/core/database/DriverModule.kt diff --git a/core/database/src/jsTest/kotlin/com/google/samples/apps/nowinandroid/core/database/BaseTest.js.kt b/core/database/src/wasmJsTest/kotlin/com/google/samples/apps/nowinandroid/core/database/BaseTest.js.kt similarity index 100% rename from core/database/src/jsTest/kotlin/com/google/samples/apps/nowinandroid/core/database/BaseTest.js.kt rename to core/database/src/wasmJsTest/kotlin/com/google/samples/apps/nowinandroid/core/database/BaseTest.js.kt