From 50157a49363fb81b8eeecbd4856ead353ff7d086 Mon Sep 17 00:00:00 2001 From: Travis Wyatt Date: Wed, 7 Aug 2024 11:02:12 -0700 Subject: [PATCH] Use `jso` from kotlin-wrappers library (#726) --- gradle/libs.versions.toml | 2 ++ kable-core/build.gradle.kts | 5 +++++ kable-core/src/jsMain/kotlin/Bluetooth.kt | 1 + kable-core/src/jsMain/kotlin/BluetoothLEScanOptions.kt | 1 + kable-core/src/jsMain/kotlin/FilterSet.kt | 1 + kable-core/src/jsMain/kotlin/jso.kt | 8 -------- 6 files changed, 10 insertions(+), 8 deletions(-) delete mode 100644 kable-core/src/jsMain/kotlin/jso.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7d2273d9f..795ef5a2e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,6 +18,8 @@ kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-t tuulbox-collections = { module = "com.juul.tuulbox:collections", version.ref = "tuulbox" } tuulbox-coroutines = { module = "com.juul.tuulbox:coroutines", version.ref = "tuulbox" } uuid = { module = "com.benasher44:uuid", version = "0.8.4" } +wrappers-bom = { module = "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom", version = "1.0.0-pre.781" } +wrappers-web = { module = "org.jetbrains.kotlin-wrappers:kotlin-web" } [plugins] android-library = { id = "com.android.library", version = "8.5.1" } diff --git a/kable-core/build.gradle.kts b/kable-core/build.gradle.kts index 5d63e0bcc..9858c00e4 100644 --- a/kable-core/build.gradle.kts +++ b/kable-core/build.gradle.kts @@ -47,6 +47,11 @@ kotlin { implementation(libs.tuulbox.coroutines) } + + jsMain.dependencies { + api(libs.wrappers.web) + api(project.dependencies.platform(libs.wrappers.bom)) + } } } diff --git a/kable-core/src/jsMain/kotlin/Bluetooth.kt b/kable-core/src/jsMain/kotlin/Bluetooth.kt index dd76b3224..1872dd917 100644 --- a/kable-core/src/jsMain/kotlin/Bluetooth.kt +++ b/kable-core/src/jsMain/kotlin/Bluetooth.kt @@ -8,6 +8,7 @@ import com.juul.kable.external.BluetoothAvailabilityChanged import com.juul.kable.external.BluetoothLEScanFilterInit import com.juul.kable.external.BluetoothServiceUUID import com.juul.kable.external.RequestDeviceOptions +import js.objects.jso import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.await import kotlinx.coroutines.channels.awaitClose diff --git a/kable-core/src/jsMain/kotlin/BluetoothLEScanOptions.kt b/kable-core/src/jsMain/kotlin/BluetoothLEScanOptions.kt index 527efbe14..60968d518 100644 --- a/kable-core/src/jsMain/kotlin/BluetoothLEScanOptions.kt +++ b/kable-core/src/jsMain/kotlin/BluetoothLEScanOptions.kt @@ -4,6 +4,7 @@ import com.benasher44.uuid.Uuid import com.juul.kable.external.BluetoothLEScanFilterInit import com.juul.kable.external.BluetoothLEScanOptions import com.juul.kable.external.BluetoothManufacturerDataFilterInit +import js.objects.jso /** Convert list of public API type to Web Bluetooth (JavaScript) type. */ internal fun List.toBluetoothLEScanOptions(): BluetoothLEScanOptions = jso { diff --git a/kable-core/src/jsMain/kotlin/FilterSet.kt b/kable-core/src/jsMain/kotlin/FilterSet.kt index e2204eb7f..0d197549a 100644 --- a/kable-core/src/jsMain/kotlin/FilterSet.kt +++ b/kable-core/src/jsMain/kotlin/FilterSet.kt @@ -3,6 +3,7 @@ package com.juul.kable import com.benasher44.uuid.Uuid import com.juul.kable.external.BluetoothLEScanFilterInit import com.juul.kable.external.BluetoothManufacturerDataFilterInit +import js.objects.jso /** * Filtering on Service Data is not supported because it is not implemented: diff --git a/kable-core/src/jsMain/kotlin/jso.kt b/kable-core/src/jsMain/kotlin/jso.kt deleted file mode 100644 index fc6fcdf8a..000000000 --- a/kable-core/src/jsMain/kotlin/jso.kt +++ /dev/null @@ -1,8 +0,0 @@ -@file:Suppress("NOTHING_TO_INLINE") - -package com.juul.kable - -// Copied from: -// https://github.com/JetBrains/kotlin-wrappers/blob/8a118e3261c093cf1b88002502ca36f17d356394/kotlin-js/src/main/kotlin/js/core/jso.kt -internal inline fun jso(): T = js("({})") -internal inline fun jso(block: T.() -> Unit): T = jso().apply(block)