diff --git a/common/src/jsMain/kotlin/dev/inmo/micro_utils/common/MutationObserver.kt b/common/src/jsMain/kotlin/dev/inmo/micro_utils/common/MutationObserver.kt index 3acd8e6c0ed..77f6be2d775 100644 --- a/common/src/jsMain/kotlin/dev/inmo/micro_utils/common/MutationObserver.kt +++ b/common/src/jsMain/kotlin/dev/inmo/micro_utils/common/MutationObserver.kt @@ -1,5 +1,7 @@ package dev.inmo.micro_utils.common +import org.w3c.dom.MutationObserverInit + /** * Creates options for [org.w3c.dom.MutationObserver] without adding unspecified properties. * @@ -18,7 +20,7 @@ fun MutationObserverOptions( attributeOldValue: Boolean? = null, characterDataOldValue: Boolean? = null, attributeFilter: Array? = null -): NativeMutationObserverInit = js("{}").unsafeCast().apply { +): MutationObserverInit = js("{}").unsafeCast().apply { if (childList != null) this.childList = childList if (attributes != null) this.attributes = attributes if (characterData != null) this.characterData = characterData diff --git a/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverBrowserTests.kt b/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverBrowserTests.kt index 99b2345d1ec..0e111be8a58 100644 --- a/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverBrowserTests.kt +++ b/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverBrowserTests.kt @@ -22,7 +22,7 @@ class MutationObserverBrowserTests { root.appendChild(nested) val observer = MutationObserver { _, _ -> } try { - observer.observe(root, MutationObserverInit(childList = true, subtree = true)) + observer.observe(root, MutationObserverOptions(childList = true, subtree = true)) nested.appendChild(child) val record = observer.takeRecords().single() assertEquals("childList", record.type) @@ -45,7 +45,7 @@ class MutationObserverBrowserTests { target.setAttribute("data-state", "old") val observer = MutationObserver { _, _ -> } try { - observer.observe(target, MutationObserverInit(attributeFilter = arrayOf("data-state"), attributeOldValue = true)) + observer.observe(target, MutationObserverOptions(attributeFilter = arrayOf("data-state"), attributeOldValue = true)) target.setAttribute("ignored", "value") target.setAttribute("data-state", "new") val record = observer.takeRecords().single() @@ -64,7 +64,7 @@ class MutationObserverBrowserTests { val target = document.createTextNode("old") val observer = MutationObserver { _, _ -> } try { - observer.observe(target, MutationObserverInit(characterDataOldValue = true)) + observer.observe(target, MutationObserverOptions(characterDataOldValue = true)) target.data = "new" val record = observer.takeRecords().single() assertEquals("characterData", record.type) @@ -80,7 +80,7 @@ class MutationObserverBrowserTests { val target = document.createElement("div") val observer = MutationObserver { _, _ -> } try { - observer.observe(target, MutationObserverInit(childList = true, attributeFilter = null)) + observer.observe(target, MutationObserverOptions(childList = true, attributeFilter = null)) target.appendChild(document.createElement("span")) assertEquals("childList", observer.takeRecords().single().type) } finally { @@ -93,7 +93,7 @@ class MutationObserverBrowserTests { val target = document.createElement("div") val observer = MutationObserver { _, _ -> } try { - observer.observe(target, MutationObserverInit(attributeFilter = emptyArray())) + observer.observe(target, MutationObserverOptions(attributeFilter = emptyArray())) target.setAttribute("data-state", "new") assertTrue(observer.takeRecords().isEmpty()) } finally { @@ -106,12 +106,12 @@ class MutationObserverBrowserTests { val target = document.createElement("div") val observer = MutationObserver { _, _ -> } try { - assertFails { observer.observe(target, MutationObserverInit()) } + assertFails { observer.observe(target, MutationObserverOptions()) } assertFails { - observer.observe(target, MutationObserverInit(attributes = false, attributeFilter = arrayOf("class"))) + observer.observe(target, MutationObserverOptions(attributes = false, attributeFilter = arrayOf("class"))) } assertFails { - observer.observe(target, MutationObserverInit(characterData = false, characterDataOldValue = true)) + observer.observe(target, MutationObserverOptions(characterData = false, characterDataOldValue = true)) } } finally { observer.disconnect() diff --git a/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverInitTests.kt b/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverInitTests.kt index 9f5fc20ed71..783ea1f75f0 100644 --- a/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverInitTests.kt +++ b/common/src/jsTest/kotlin/dev/inmo/micro_utils/common/MutationObserverInitTests.kt @@ -1,23 +1,23 @@ package dev.inmo.micro_utils.common -import org.w3c.dom.MutationObserverInit as NativeMutationObserverInit +import org.w3c.dom.MutationObserverInit import kotlin.test.Test import kotlin.test.assertContentEquals import kotlin.test.assertEquals import kotlin.test.assertSame class MutationObserverInitTests { - private fun keys(options: NativeMutationObserverInit): List = + private fun keys(@Suppress("unused") options: MutationObserverInit): List = js("Object.keys(options)").unsafeCast>().sorted() @Test fun emptyOptionsHaveNoProperties() { - assertEquals(emptyList(), keys(MutationObserverInit())) + assertEquals(emptyList(), keys(MutationObserverOptions())) } @Test fun childListOptionsOmitUnspecifiedProperties() { - val options = MutationObserverInit(childList = true, subtree = true) + val options = MutationObserverOptions(childList = true, subtree = true) assertEquals(listOf("childList", "subtree"), keys(options)) assertEquals(true, options.childList) assertEquals(true, options.subtree) @@ -25,7 +25,7 @@ class MutationObserverInitTests { @Test fun explicitNullOptionsAreOmitted() { - val options = MutationObserverInit( + val options = MutationObserverOptions( childList = null, attributes = null, characterData = null, @@ -40,7 +40,7 @@ class MutationObserverInitTests { @Test fun explicitFalseAndEmptyFilterArePreserved() { val filter = emptyArray() - val options = MutationObserverInit(false, false, false, false, false, false, filter) + val options = MutationObserverOptions(false, false, false, false, false, false, filter) assertEquals( listOf("attributeFilter", "attributeOldValue", "attributes", "characterData", "characterDataOldValue", "childList", "subtree"), keys(options) @@ -58,7 +58,7 @@ class MutationObserverInitTests { @Test fun filtersAndOldValueOptionsDoNotForceObservationFlags() { val filter = arrayOf("class", "data-state") - val options = MutationObserverInit( + val options = MutationObserverOptions( attributeFilter = filter, attributeOldValue = true, characterDataOldValue = true @@ -71,8 +71,8 @@ class MutationObserverInitTests { @Test fun eachCallCreatesIndependentOptions() { - val first = MutationObserverInit(childList = true) - val second = MutationObserverInit(attributes = true) + val first = MutationObserverOptions(childList = true) + val second = MutationObserverOptions(attributes = true) first.subtree = true assertEquals(listOf("childList", "subtree"), keys(first)) assertEquals(listOf("attributes"), keys(second))