diff --git a/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt b/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt index 61e491ff1..692c8cb02 100644 --- a/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/KotlinInjectConventionPlugin.kt @@ -34,6 +34,11 @@ class KotlinInjectConventionPlugin: Plugin { add("kspIosX64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) add("kspIosArm64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) add("kspIosSimulatorArm64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) +// add("kspWasmJs", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspAndroid", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspJvm", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspMacosX64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) + add("kspMacosArm64", libs.findLibrary("kotlin.inject.compiler.ksp").get()) } } } 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..9e77a6f91 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 @@ -36,21 +39,21 @@ internal fun Project.configureKotlinMultiplatform() { jvm() androidTarget() +// SqlDelight does not support wasm yet +// https://github.com/cashapp/sqldelight/pull/4965/files - js { - browser { - testTask { - useKarma { - useChromeHeadless() - } - } - } - compilations.configureEach { - kotlinOptions { - moduleKind = "umd" - } - } - } +// wasmJs { +// browser { +// commonWebpackConfig { +// devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { +// static = (static ?: mutableListOf()).apply { +// // Serve sources to debug inside browser +// add(project.projectDir.path) +// } +// } +// } +// } +// } // tier 1 // :core:datastore:linuxMain: Could not resolve com.russhwolf:multiplatform-settings-no-arg:1.1.1. diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index cd2b1fbce..56a6fd958 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -26,6 +26,7 @@ android { kotlin { sourceSets { commonMain.dependencies { + api(libs.logging) implementation(libs.kotlinx.coroutines.core) } commonTest.dependencies { 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/build.gradle.kts b/core/database/build.gradle.kts index ac81f18d7..faf1fc3c3 100644 --- a/core/database/build.gradle.kts +++ b/core/database/build.gradle.kts @@ -50,12 +50,13 @@ kotlin { jvmMain.dependencies { implementation(libs.sqldelight.sqlite.driver) } - jsMain.dependencies { - implementation(libs.sqldelight.webworker.driver) - implementation(npm("@cashapp/sqldelight-sqljs-worker", "2.0.1")) - implementation(npm("sql.js", "1.8.0")) - implementation(devNpm("copy-webpack-plugin", "9.1.0")) - } + // https://github.com/cashapp/sqldelight/pull/4965/files +// wasmJsMain.dependencies { +// implementation(libs.sqldelight.webworker.driver) +// implementation(npm("@cashapp/sqldelight-sqljs-worker", "2.0.1")) +// implementation(npm("sql.js", "1.8.0")) +// implementation(devNpm("copy-webpack-plugin", "9.1.0")) +// } commonTest.dependencies { implementation(libs.kotlin.test) implementation(libs.kotlinx.coroutines.test) 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 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c82347cda..7ec63b6ad 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,6 +73,7 @@ junit = "4.13.2" sqldelight = "2.0.1" kotlinInject = '0.6.3' multiplatform-settings = "1.1.1" +kermit = "2.0.3" ktor = "3.0.0-beta-1" ktrofit = "1.12.0" @@ -179,6 +180,7 @@ multiplatform-settings = { group = "com.russhwolf", name = "multiplatform-settin multiplatform-settings-test = { group = "com.russhwolf", name = "multiplatform-settings-test", version.ref = "multiplatform-settings" } multiplatform-settings-serialization = { group = "com.russhwolf", name = "multiplatform-settings-serialization", version.ref = "multiplatform-settings" } multiplatform-settings-coroutines = { group = "com.russhwolf", name = "multiplatform-settings-coroutines", version.ref = "multiplatform-settings" } +logging = { group = "co.touchlab", name = "kermit", version.ref = "kermit" } ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" } ktor-client-json = { group = "io.ktor", name = "ktor-client-json", version.ref = "ktor" } ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktor" }