From 0e9d9813c6533dad6c296f964fec3fbe3333b691 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Sat, 18 Apr 2026 09:16:09 -0400 Subject: [PATCH 1/2] refactor(dom): simplify DOM and observer surfaces --- src/DOMAPI/Document.res | 2 ++ src/DOMAPI/Element.res | 2 ++ src/DOMAPI/HTMLCanvasElement.res | 2 ++ src/DOMAPI/HTMLElement.res | 2 ++ src/DOMAPI/HTMLImageElement.res | 2 ++ src/DOMAPI/HTMLInputElement.res | 2 ++ src/DOMAPI/Location.res | 2 ++ src/DOMAPI/Node.res | 2 ++ src/DOMAPI/Window.res | 2 +- src/EventAPI/AbortController.res | 2 ++ src/EventAPI/AbortSignal.res | 2 ++ src/EventAPI/Event.res | 2 ++ src/EventAPI/EventTarget.res | 2 ++ src/EventAPI/ExtendableEvent.res | 2 ++ src/IntersectionObserverAPI/IntersectionObserver.res | 2 ++ src/IntersectionObserverAPI/IntersectionObserverRoot.res | 2 ++ src/MutationObserverAPI/MutationObserver.res | 2 ++ src/ResizeObserverAPI/ResizeObserver.res | 2 ++ src/UIEventsAPI/CompositionEvent.res | 2 ++ src/UIEventsAPI/DataTransfer.res | 2 ++ src/UIEventsAPI/DataTransferItem.res | 2 ++ src/UIEventsAPI/DataTransferItemList.res | 2 ++ src/UIEventsAPI/FocusEvent.res | 2 ++ src/UIEventsAPI/InputEvent.res | 2 ++ src/UIEventsAPI/KeyboardEvent.res | 2 ++ src/UIEventsAPI/MouseEvent.res | 2 ++ src/UIEventsAPI/PointerEvent.res | 2 ++ src/UIEventsAPI/Touch.res | 2 ++ src/UIEventsAPI/TouchEvent.res | 2 ++ src/UIEventsAPI/TouchList.res | 2 ++ src/UIEventsAPI/UIEvent.res | 2 ++ src/UIEventsAPI/WheelEvent.res | 2 ++ src/ViewTransitionsAPI/ViewTransition.res | 2 ++ tests/DOMAPI/AddEventListener__test.res | 8 +++----- tests/DOMAPI/Element__test.res | 2 +- tests/DOMAPI/HTMLCanvasElement__test.res | 8 +++----- tests/DOMAPI/HTMLElement__test.res | 3 +-- tests/DOMAPI/HTMLInputElement__test.res | 6 ++---- tests/DOMAPI/Location__test.res | 5 +---- .../IntersectionObserver__test.res | 8 ++++---- tests/MutationObserverAPI/MutationObserver__test.res | 6 +++--- 41 files changed, 83 insertions(+), 29 deletions(-) diff --git a/src/DOMAPI/Document.res b/src/DOMAPI/Document.res index dd33ab26..43d132c6 100644 --- a/src/DOMAPI/Document.res +++ b/src/DOMAPI/Document.res @@ -2,6 +2,8 @@ open DOMTypes open EventTypes open ViewTransitionsTypes +type t = document + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document) */ diff --git a/src/DOMAPI/Element.res b/src/DOMAPI/Element.res index b8281fa2..499f4eda 100644 --- a/src/DOMAPI/Element.res +++ b/src/DOMAPI/Element.res @@ -1,6 +1,8 @@ open DOMTypes open Prelude +type t = element + module Impl = ( T: { type t diff --git a/src/DOMAPI/HTMLCanvasElement.res b/src/DOMAPI/HTMLCanvasElement.res index 4ff3901c..7e6fb9a5 100644 --- a/src/DOMAPI/HTMLCanvasElement.res +++ b/src/DOMAPI/HTMLCanvasElement.res @@ -2,6 +2,8 @@ open DOMTypes open CanvasTypes open MediaCaptureAndStreamsTypes +type t = htmlCanvasElement + include HTMLElement.Impl({type t = htmlCanvasElement}) /** diff --git a/src/DOMAPI/HTMLElement.res b/src/DOMAPI/HTMLElement.res index 26813d70..3445ce53 100644 --- a/src/DOMAPI/HTMLElement.res +++ b/src/DOMAPI/HTMLElement.res @@ -1,5 +1,7 @@ open DOMTypes +type t = htmlElement + module Impl = ( T: { type t diff --git a/src/DOMAPI/HTMLImageElement.res b/src/DOMAPI/HTMLImageElement.res index 0567f367..cb04e5af 100644 --- a/src/DOMAPI/HTMLImageElement.res +++ b/src/DOMAPI/HTMLImageElement.res @@ -1,5 +1,7 @@ open DOMTypes +type t = htmlImageElement + include HTMLElement.Impl({type t = htmlImageElement}) /** diff --git a/src/DOMAPI/HTMLInputElement.res b/src/DOMAPI/HTMLInputElement.res index 19a90eda..754e9614 100644 --- a/src/DOMAPI/HTMLInputElement.res +++ b/src/DOMAPI/HTMLInputElement.res @@ -1,5 +1,7 @@ open DOMTypes +type t = htmlInputElement + include HTMLElement.Impl({type t = htmlInputElement}) /** diff --git a/src/DOMAPI/Location.res b/src/DOMAPI/Location.res index 30ea3bb3..270d9f3e 100644 --- a/src/DOMAPI/Location.res +++ b/src/DOMAPI/Location.res @@ -1,5 +1,7 @@ open DOMTypes +type t = location + /** Navigates to the given URL. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Location/assign) diff --git a/src/DOMAPI/Node.res b/src/DOMAPI/Node.res index aa456ae4..89721c67 100644 --- a/src/DOMAPI/Node.res +++ b/src/DOMAPI/Node.res @@ -1,5 +1,7 @@ open DOMTypes +type t = node + module Impl = ( T: { type t diff --git a/src/DOMAPI/Window.res b/src/DOMAPI/Window.res index 00654288..dd49e477 100644 --- a/src/DOMAPI/Window.res +++ b/src/DOMAPI/Window.res @@ -66,7 +66,7 @@ external clearInterval: (window, int) => unit = "clearInterval" [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Window/queueMicrotask) */ @send -external queueMicrotask: (window, voidFunction) => unit = "queueMicrotask" +external queueMicrotask: (window, unit => unit) => unit = "queueMicrotask" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Window/createImageBitmap) diff --git a/src/EventAPI/AbortController.res b/src/EventAPI/AbortController.res index 4a171c43..6ddce063 100644 --- a/src/EventAPI/AbortController.res +++ b/src/EventAPI/AbortController.res @@ -1,5 +1,7 @@ open EventTypes +type t = abortController + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbortController) */ diff --git a/src/EventAPI/AbortSignal.res b/src/EventAPI/AbortSignal.res index 960b2559..f643d6f8 100644 --- a/src/EventAPI/AbortSignal.res +++ b/src/EventAPI/AbortSignal.res @@ -1,5 +1,7 @@ open EventTypes +type t = abortSignal + include EventTarget.Impl({type t = abortSignal}) /** diff --git a/src/EventAPI/Event.res b/src/EventAPI/Event.res index 9233f649..f46dcf4c 100644 --- a/src/EventAPI/Event.res +++ b/src/EventAPI/Event.res @@ -1,5 +1,7 @@ open EventTypes +type t = event + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event) */ diff --git a/src/EventAPI/EventTarget.res b/src/EventAPI/EventTarget.res index eb86f698..cf3a6932 100644 --- a/src/EventAPI/EventTarget.res +++ b/src/EventAPI/EventTarget.res @@ -1,5 +1,7 @@ open EventTypes +type t = eventTarget + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget) */ diff --git a/src/EventAPI/ExtendableEvent.res b/src/EventAPI/ExtendableEvent.res index df7bd5ff..fce10c36 100644 --- a/src/EventAPI/ExtendableEvent.res +++ b/src/EventAPI/ExtendableEvent.res @@ -1,5 +1,7 @@ open EventTypes +type t = extendableEvent + module Impl = ( T: { type t diff --git a/src/IntersectionObserverAPI/IntersectionObserver.res b/src/IntersectionObserverAPI/IntersectionObserver.res index 5f403ae6..68a97d82 100644 --- a/src/IntersectionObserverAPI/IntersectionObserver.res +++ b/src/IntersectionObserverAPI/IntersectionObserver.res @@ -1,6 +1,8 @@ open DOMTypes open IntersectionObserverTypes +type t = intersectionObserver + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IntersectionObserver) */ diff --git a/src/IntersectionObserverAPI/IntersectionObserverRoot.res b/src/IntersectionObserverAPI/IntersectionObserverRoot.res index f8306ff8..add32fe4 100644 --- a/src/IntersectionObserverAPI/IntersectionObserverRoot.res +++ b/src/IntersectionObserverAPI/IntersectionObserverRoot.res @@ -1,6 +1,8 @@ open DOMTypes open IntersectionObserverTypes +type t = root + external fromDocument: document => root = "%identity" external fromElement: element => root = "%identity" external fromNull: root = "null" diff --git a/src/MutationObserverAPI/MutationObserver.res b/src/MutationObserverAPI/MutationObserver.res index 207de406..16187897 100644 --- a/src/MutationObserverAPI/MutationObserver.res +++ b/src/MutationObserverAPI/MutationObserver.res @@ -1,6 +1,8 @@ open DOMTypes open MutationObserverTypes +type t = mutationObserver + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MutationObserver) */ diff --git a/src/ResizeObserverAPI/ResizeObserver.res b/src/ResizeObserverAPI/ResizeObserver.res index 0ab126af..5797381a 100644 --- a/src/ResizeObserverAPI/ResizeObserver.res +++ b/src/ResizeObserverAPI/ResizeObserver.res @@ -1,6 +1,8 @@ open DOMTypes open ResizeObserverTypes +type t = resizeObserver + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/ResizeObserver) */ diff --git a/src/UIEventsAPI/CompositionEvent.res b/src/UIEventsAPI/CompositionEvent.res index 65315f23..a87e5fbf 100644 --- a/src/UIEventsAPI/CompositionEvent.res +++ b/src/UIEventsAPI/CompositionEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = compositionEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CompositionEvent) */ diff --git a/src/UIEventsAPI/DataTransfer.res b/src/UIEventsAPI/DataTransfer.res index 8ff834dc..95843a5b 100644 --- a/src/UIEventsAPI/DataTransfer.res +++ b/src/UIEventsAPI/DataTransfer.res @@ -1,6 +1,8 @@ open UIEventsTypes open DOMTypes +type t = dataTransfer + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DataTransfer) */ diff --git a/src/UIEventsAPI/DataTransferItem.res b/src/UIEventsAPI/DataTransferItem.res index 4948d1c2..7ac4bab9 100644 --- a/src/UIEventsAPI/DataTransferItem.res +++ b/src/UIEventsAPI/DataTransferItem.res @@ -2,6 +2,8 @@ open UIEventsTypes open FileTypes open FileAndDirectoryEntriesTypes +type t = dataTransferItem + /** Invokes the callback with the string data as the argument, if the drag data item kind is text. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsString) diff --git a/src/UIEventsAPI/DataTransferItemList.res b/src/UIEventsAPI/DataTransferItemList.res index 786a7674..c6492777 100644 --- a/src/UIEventsAPI/DataTransferItemList.res +++ b/src/UIEventsAPI/DataTransferItemList.res @@ -1,6 +1,8 @@ open UIEventsTypes open FileTypes +type t = dataTransferItemList + /** Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/add) diff --git a/src/UIEventsAPI/FocusEvent.res b/src/UIEventsAPI/FocusEvent.res index 26fa2fc9..58d3c2bd 100644 --- a/src/UIEventsAPI/FocusEvent.res +++ b/src/UIEventsAPI/FocusEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = focusEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/FocusEvent) */ diff --git a/src/UIEventsAPI/InputEvent.res b/src/UIEventsAPI/InputEvent.res index ec522566..3a69057d 100644 --- a/src/UIEventsAPI/InputEvent.res +++ b/src/UIEventsAPI/InputEvent.res @@ -1,6 +1,8 @@ open UIEventsTypes open DOMTypes +type t = inputEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/InputEvent) */ diff --git a/src/UIEventsAPI/KeyboardEvent.res b/src/UIEventsAPI/KeyboardEvent.res index 36c071c1..d4dd160e 100644 --- a/src/UIEventsAPI/KeyboardEvent.res +++ b/src/UIEventsAPI/KeyboardEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = keyboardEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/KeyboardEvent) */ diff --git a/src/UIEventsAPI/MouseEvent.res b/src/UIEventsAPI/MouseEvent.res index d8fb714a..31f46726 100644 --- a/src/UIEventsAPI/MouseEvent.res +++ b/src/UIEventsAPI/MouseEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = mouseEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MouseEvent) */ diff --git a/src/UIEventsAPI/PointerEvent.res b/src/UIEventsAPI/PointerEvent.res index 91d10b3c..bf8d73ac 100644 --- a/src/UIEventsAPI/PointerEvent.res +++ b/src/UIEventsAPI/PointerEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = pointerEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/PointerEvent) */ diff --git a/src/UIEventsAPI/Touch.res b/src/UIEventsAPI/Touch.res index 4e7627cc..3a669c32 100644 --- a/src/UIEventsAPI/Touch.res +++ b/src/UIEventsAPI/Touch.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = touch + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Touch) */ diff --git a/src/UIEventsAPI/TouchEvent.res b/src/UIEventsAPI/TouchEvent.res index be40c70a..bd6da76a 100644 --- a/src/UIEventsAPI/TouchEvent.res +++ b/src/UIEventsAPI/TouchEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = touchEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TouchEvent) */ diff --git a/src/UIEventsAPI/TouchList.res b/src/UIEventsAPI/TouchList.res index 03bc9ad4..e35cb035 100644 --- a/src/UIEventsAPI/TouchList.res +++ b/src/UIEventsAPI/TouchList.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = touchList + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TouchList/item) */ diff --git a/src/UIEventsAPI/UIEvent.res b/src/UIEventsAPI/UIEvent.res index 58a0628b..6003c5f6 100644 --- a/src/UIEventsAPI/UIEvent.res +++ b/src/UIEventsAPI/UIEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = uiEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/UIEvent) */ diff --git a/src/UIEventsAPI/WheelEvent.res b/src/UIEventsAPI/WheelEvent.res index 4534ecdf..97ed8ebe 100644 --- a/src/UIEventsAPI/WheelEvent.res +++ b/src/UIEventsAPI/WheelEvent.res @@ -1,5 +1,7 @@ open UIEventsTypes +type t = wheelEvent + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WheelEvent) */ diff --git a/src/ViewTransitionsAPI/ViewTransition.res b/src/ViewTransitionsAPI/ViewTransition.res index 9d7d387d..2097c702 100644 --- a/src/ViewTransitionsAPI/ViewTransition.res +++ b/src/ViewTransitionsAPI/ViewTransition.res @@ -1,5 +1,7 @@ open ViewTransitionsTypes +type t = viewTransition + /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/ViewTransition/skipTransition) */ diff --git a/tests/DOMAPI/AddEventListener__test.res b/tests/DOMAPI/AddEventListener__test.res index eb491ae3..3e68b08e 100644 --- a/tests/DOMAPI/AddEventListener__test.res +++ b/tests/DOMAPI/AddEventListener__test.res @@ -1,12 +1,10 @@ open WebAPI -open WebAPI.Global - -let button = document->Document.querySelector("button")->Null.toOption -let h2 = document->Document.querySelector("h2")->Null.toOption +let button = Window.current.document->Document.querySelector("button")->Null.toOption +let h2 = Window.current.document->Document.querySelector("h2")->Null.toOption switch (button, h2) { | (Some(button), Some(h2)) => - button->Element.addEventListener(EventTypes.Click, (e: UIEventsTypes.mouseEvent) => { + button->Element.addEventListener(EventTypes.Click, (e: MouseEvent.t) => { Console.log(`Button clicked, ${Int.toString(e.button)}`) switch h2.textContent { | Null => h2.textContent = Value("1") diff --git a/tests/DOMAPI/Element__test.res b/tests/DOMAPI/Element__test.res index 4d637266..e03fd581 100644 --- a/tests/DOMAPI/Element__test.res +++ b/tests/DOMAPI/Element__test.res @@ -1,4 +1,4 @@ -external myElement: DOMTypes.element = "myElement" +external myElement: Element.t = "myElement" switch myElement->Element.getAttribute("foo") { | Null.Value(value) => value->Console.log diff --git a/tests/DOMAPI/HTMLCanvasElement__test.res b/tests/DOMAPI/HTMLCanvasElement__test.res index 6c089f33..48fdc9f8 100644 --- a/tests/DOMAPI/HTMLCanvasElement__test.res +++ b/tests/DOMAPI/HTMLCanvasElement__test.res @@ -1,7 +1,5 @@ -open WebAPI.Global - -let myCanvas: DOMTypes.htmlCanvasElement = - document->Document.getElementById("myCanvas")->Prelude.unsafeConversation +let myCanvas: HTMLCanvasElement.t = + Window.current.document->Document.getElementById("myCanvas")->Prelude.unsafeConversation let ctx = myCanvas->HTMLCanvasElement.getContext2D ctx.fillStyle = FillStyle.fromString("red") @@ -18,7 +16,7 @@ switch ctx.fillStyle->FillStyle.decode { | FillStyle.CanvasPattern(_) => Console.log("CanvasPattern") } -let img: DOMTypes.htmlImageElement = document->Document.createElement("img")->Obj.magic +let img: HTMLImageElement.t = Window.current.document->Document.createElement("img")->Obj.magic ctx->CanvasRenderingContext2D.drawImageWithDimensions( ~image=img, ~dx=0., diff --git a/tests/DOMAPI/HTMLElement__test.res b/tests/DOMAPI/HTMLElement__test.res index daf349ae..bb2e3c3f 100644 --- a/tests/DOMAPI/HTMLElement__test.res +++ b/tests/DOMAPI/HTMLElement__test.res @@ -1,7 +1,6 @@ open WebAPI -open WebAPI.Global -document +Window.current.document ->Document.querySelector("form") ->Null.toOption ->Option.forEach(form => { diff --git a/tests/DOMAPI/HTMLInputElement__test.res b/tests/DOMAPI/HTMLInputElement__test.res index 3cdd8f2b..d3ac6292 100644 --- a/tests/DOMAPI/HTMLInputElement__test.res +++ b/tests/DOMAPI/HTMLInputElement__test.res @@ -1,5 +1,3 @@ -open Global - -let input: DOMTypes.htmlInputElement = - document->Document.createElement("input")->Prelude.unsafeConversation +let input: HTMLInputElement.t = + Window.current.document->Document.createElement("input")->Prelude.unsafeConversation let value = input.value diff --git a/tests/DOMAPI/Location__test.res b/tests/DOMAPI/Location__test.res index fa2d12f8..7ba304eb 100644 --- a/tests/DOMAPI/Location__test.res +++ b/tests/DOMAPI/Location__test.res @@ -1,7 +1,4 @@ -open Global - -// Note that this only works when you added the `-open Global` bsc flag. -let location = window.location +let location = Window.current.location // Access properties using `.` let href = location.href diff --git a/tests/IntersectionObserverAPI/IntersectionObserver__test.res b/tests/IntersectionObserverAPI/IntersectionObserver__test.res index 051d82ee..02175145 100644 --- a/tests/IntersectionObserverAPI/IntersectionObserver__test.res +++ b/tests/IntersectionObserverAPI/IntersectionObserver__test.res @@ -1,10 +1,10 @@ -let observer = IntersectionObserver.make(~callback=(entry, observer) => { +let observer: IntersectionObserver.t = IntersectionObserver.make(~callback=(entry, observer) => { Console.log2(entry, observer) }) -let root = Global.document->Document.querySelector("#root")->Null.getUnsafe +let root = Window.current.document->Document.querySelector("#root")->Null.getUnsafe -let observer2 = IntersectionObserver.make( +let observer2: IntersectionObserver.t = IntersectionObserver.make( ~callback=(entry, observer) => { Console.log2(entry, observer) }, @@ -22,7 +22,7 @@ switch observer2.root->IntersectionObserverRoot.decode { } let rootMargin2 = observer2.rootMargin -let targetElement = Global.document->Document.querySelector("#targetElement")->Null.toOption +let targetElement = Window.current.document->Document.querySelector("#targetElement")->Null.toOption switch targetElement { | Some(e) => { observer2->IntersectionObserver.observe(e) diff --git a/tests/MutationObserverAPI/MutationObserver__test.res b/tests/MutationObserverAPI/MutationObserver__test.res index 7ae06621..3de033ba 100644 --- a/tests/MutationObserverAPI/MutationObserver__test.res +++ b/tests/MutationObserverAPI/MutationObserver__test.res @@ -1,5 +1,5 @@ -let observer = MutationObserver.make((mutations, obs) => { - let button = Global.document->Document.querySelector("button") +let observer: MutationObserver.t = MutationObserver.make((mutations, obs) => { + let button = Window.current.document->Document.querySelector("button") switch button->Null.toOption { | Some(button) => { Console.log(button) @@ -11,7 +11,7 @@ let observer = MutationObserver.make((mutations, obs) => { }) observer->MutationObserver.observe( - ~target=Global.document->Document.asNode, + ~target=Window.current.document->Document.asNode, ~options={childList: true, subtree: true}, ) From 19cf5319d08ba395102f68df4bec340276360f36 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Sat, 18 Apr 2026 10:19:07 -0400 Subject: [PATCH 2/2] refactor(dom): spread exported root type aliases --- src/DOMAPI/Document.res | 2 +- src/DOMAPI/Element.res | 2 +- src/DOMAPI/HTMLCanvasElement.res | 2 +- src/DOMAPI/HTMLElement.res | 2 +- src/DOMAPI/HTMLImageElement.res | 2 +- src/DOMAPI/HTMLInputElement.res | 2 +- src/DOMAPI/Location.res | 2 +- src/DOMAPI/Node.res | 2 +- src/EventAPI/AbortController.res | 2 +- src/EventAPI/AbortSignal.res | 2 +- src/EventAPI/Event.res | 2 +- src/EventAPI/EventTarget.res | 2 +- src/EventAPI/ExtendableEvent.res | 2 +- src/IntersectionObserverAPI/IntersectionObserver.res | 2 +- src/ResizeObserverAPI/ResizeObserver.res | 2 +- src/UIEventsAPI/CompositionEvent.res | 2 +- src/UIEventsAPI/DataTransfer.res | 2 +- src/UIEventsAPI/DataTransferItem.res | 2 +- src/UIEventsAPI/DataTransferItemList.res | 2 +- src/UIEventsAPI/FocusEvent.res | 2 +- src/UIEventsAPI/InputEvent.res | 2 +- src/UIEventsAPI/KeyboardEvent.res | 2 +- src/UIEventsAPI/MouseEvent.res | 2 +- src/UIEventsAPI/PointerEvent.res | 2 +- src/UIEventsAPI/Touch.res | 2 +- src/UIEventsAPI/TouchEvent.res | 2 +- src/UIEventsAPI/TouchList.res | 2 +- src/UIEventsAPI/UIEvent.res | 2 +- src/UIEventsAPI/WheelEvent.res | 2 +- src/ViewTransitionsAPI/ViewTransition.res | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/DOMAPI/Document.res b/src/DOMAPI/Document.res index 43d132c6..590ef40f 100644 --- a/src/DOMAPI/Document.res +++ b/src/DOMAPI/Document.res @@ -2,7 +2,7 @@ open DOMTypes open EventTypes open ViewTransitionsTypes -type t = document +type t = document = {...document} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document) diff --git a/src/DOMAPI/Element.res b/src/DOMAPI/Element.res index 499f4eda..b94c0698 100644 --- a/src/DOMAPI/Element.res +++ b/src/DOMAPI/Element.res @@ -1,7 +1,7 @@ open DOMTypes open Prelude -type t = element +type t = element = {...element} module Impl = ( T: { diff --git a/src/DOMAPI/HTMLCanvasElement.res b/src/DOMAPI/HTMLCanvasElement.res index 7e6fb9a5..e0efa1f1 100644 --- a/src/DOMAPI/HTMLCanvasElement.res +++ b/src/DOMAPI/HTMLCanvasElement.res @@ -2,7 +2,7 @@ open DOMTypes open CanvasTypes open MediaCaptureAndStreamsTypes -type t = htmlCanvasElement +type t = htmlCanvasElement = {...htmlCanvasElement} include HTMLElement.Impl({type t = htmlCanvasElement}) diff --git a/src/DOMAPI/HTMLElement.res b/src/DOMAPI/HTMLElement.res index 3445ce53..f6715659 100644 --- a/src/DOMAPI/HTMLElement.res +++ b/src/DOMAPI/HTMLElement.res @@ -1,6 +1,6 @@ open DOMTypes -type t = htmlElement +type t = htmlElement = {...htmlElement} module Impl = ( T: { diff --git a/src/DOMAPI/HTMLImageElement.res b/src/DOMAPI/HTMLImageElement.res index cb04e5af..3df72a2c 100644 --- a/src/DOMAPI/HTMLImageElement.res +++ b/src/DOMAPI/HTMLImageElement.res @@ -1,6 +1,6 @@ open DOMTypes -type t = htmlImageElement +type t = htmlImageElement = {...htmlImageElement} include HTMLElement.Impl({type t = htmlImageElement}) diff --git a/src/DOMAPI/HTMLInputElement.res b/src/DOMAPI/HTMLInputElement.res index 754e9614..51c7c1e5 100644 --- a/src/DOMAPI/HTMLInputElement.res +++ b/src/DOMAPI/HTMLInputElement.res @@ -1,6 +1,6 @@ open DOMTypes -type t = htmlInputElement +type t = htmlInputElement = {...htmlInputElement} include HTMLElement.Impl({type t = htmlInputElement}) diff --git a/src/DOMAPI/Location.res b/src/DOMAPI/Location.res index 270d9f3e..b172544c 100644 --- a/src/DOMAPI/Location.res +++ b/src/DOMAPI/Location.res @@ -1,6 +1,6 @@ open DOMTypes -type t = location +type t = location = {...location} /** Navigates to the given URL. diff --git a/src/DOMAPI/Node.res b/src/DOMAPI/Node.res index 89721c67..0eef1fd3 100644 --- a/src/DOMAPI/Node.res +++ b/src/DOMAPI/Node.res @@ -1,6 +1,6 @@ open DOMTypes -type t = node +type t = node = {...node} module Impl = ( T: { diff --git a/src/EventAPI/AbortController.res b/src/EventAPI/AbortController.res index 6ddce063..e7258175 100644 --- a/src/EventAPI/AbortController.res +++ b/src/EventAPI/AbortController.res @@ -1,6 +1,6 @@ open EventTypes -type t = abortController +type t = abortController = {...abortController} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbortController) diff --git a/src/EventAPI/AbortSignal.res b/src/EventAPI/AbortSignal.res index f643d6f8..d0e05f8f 100644 --- a/src/EventAPI/AbortSignal.res +++ b/src/EventAPI/AbortSignal.res @@ -1,6 +1,6 @@ open EventTypes -type t = abortSignal +type t = abortSignal = {...abortSignal} include EventTarget.Impl({type t = abortSignal}) diff --git a/src/EventAPI/Event.res b/src/EventAPI/Event.res index f46dcf4c..d5e491c2 100644 --- a/src/EventAPI/Event.res +++ b/src/EventAPI/Event.res @@ -1,6 +1,6 @@ open EventTypes -type t = event +type t = event = {...event} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event) diff --git a/src/EventAPI/EventTarget.res b/src/EventAPI/EventTarget.res index cf3a6932..d5125e5e 100644 --- a/src/EventAPI/EventTarget.res +++ b/src/EventAPI/EventTarget.res @@ -1,6 +1,6 @@ open EventTypes -type t = eventTarget +type t = eventTarget = {...eventTarget} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget) diff --git a/src/EventAPI/ExtendableEvent.res b/src/EventAPI/ExtendableEvent.res index fce10c36..b4f747e4 100644 --- a/src/EventAPI/ExtendableEvent.res +++ b/src/EventAPI/ExtendableEvent.res @@ -1,6 +1,6 @@ open EventTypes -type t = extendableEvent +type t = extendableEvent = {...extendableEvent} module Impl = ( T: { diff --git a/src/IntersectionObserverAPI/IntersectionObserver.res b/src/IntersectionObserverAPI/IntersectionObserver.res index 68a97d82..9f922c37 100644 --- a/src/IntersectionObserverAPI/IntersectionObserver.res +++ b/src/IntersectionObserverAPI/IntersectionObserver.res @@ -1,7 +1,7 @@ open DOMTypes open IntersectionObserverTypes -type t = intersectionObserver +type t = intersectionObserver = {...intersectionObserver} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IntersectionObserver) diff --git a/src/ResizeObserverAPI/ResizeObserver.res b/src/ResizeObserverAPI/ResizeObserver.res index 5797381a..851ae3cd 100644 --- a/src/ResizeObserverAPI/ResizeObserver.res +++ b/src/ResizeObserverAPI/ResizeObserver.res @@ -1,7 +1,7 @@ open DOMTypes open ResizeObserverTypes -type t = resizeObserver +type t = resizeObserver = {...resizeObserver} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/ResizeObserver) diff --git a/src/UIEventsAPI/CompositionEvent.res b/src/UIEventsAPI/CompositionEvent.res index a87e5fbf..249a01ba 100644 --- a/src/UIEventsAPI/CompositionEvent.res +++ b/src/UIEventsAPI/CompositionEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = compositionEvent +type t = compositionEvent = {...compositionEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CompositionEvent) diff --git a/src/UIEventsAPI/DataTransfer.res b/src/UIEventsAPI/DataTransfer.res index 95843a5b..d3d9a8e4 100644 --- a/src/UIEventsAPI/DataTransfer.res +++ b/src/UIEventsAPI/DataTransfer.res @@ -1,7 +1,7 @@ open UIEventsTypes open DOMTypes -type t = dataTransfer +type t = dataTransfer = {...dataTransfer} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DataTransfer) diff --git a/src/UIEventsAPI/DataTransferItem.res b/src/UIEventsAPI/DataTransferItem.res index 7ac4bab9..8c994b66 100644 --- a/src/UIEventsAPI/DataTransferItem.res +++ b/src/UIEventsAPI/DataTransferItem.res @@ -2,7 +2,7 @@ open UIEventsTypes open FileTypes open FileAndDirectoryEntriesTypes -type t = dataTransferItem +type t = dataTransferItem = {...dataTransferItem} /** Invokes the callback with the string data as the argument, if the drag data item kind is text. diff --git a/src/UIEventsAPI/DataTransferItemList.res b/src/UIEventsAPI/DataTransferItemList.res index c6492777..c6c5ae53 100644 --- a/src/UIEventsAPI/DataTransferItemList.res +++ b/src/UIEventsAPI/DataTransferItemList.res @@ -1,7 +1,7 @@ open UIEventsTypes open FileTypes -type t = dataTransferItemList +type t = dataTransferItemList = {...dataTransferItemList} /** Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also. diff --git a/src/UIEventsAPI/FocusEvent.res b/src/UIEventsAPI/FocusEvent.res index 58d3c2bd..f66640d6 100644 --- a/src/UIEventsAPI/FocusEvent.res +++ b/src/UIEventsAPI/FocusEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = focusEvent +type t = focusEvent = {...focusEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/FocusEvent) diff --git a/src/UIEventsAPI/InputEvent.res b/src/UIEventsAPI/InputEvent.res index 3a69057d..04c36d56 100644 --- a/src/UIEventsAPI/InputEvent.res +++ b/src/UIEventsAPI/InputEvent.res @@ -1,7 +1,7 @@ open UIEventsTypes open DOMTypes -type t = inputEvent +type t = inputEvent = {...inputEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/InputEvent) diff --git a/src/UIEventsAPI/KeyboardEvent.res b/src/UIEventsAPI/KeyboardEvent.res index d4dd160e..6909a532 100644 --- a/src/UIEventsAPI/KeyboardEvent.res +++ b/src/UIEventsAPI/KeyboardEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = keyboardEvent +type t = keyboardEvent = {...keyboardEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/KeyboardEvent) diff --git a/src/UIEventsAPI/MouseEvent.res b/src/UIEventsAPI/MouseEvent.res index 31f46726..5ce15ac6 100644 --- a/src/UIEventsAPI/MouseEvent.res +++ b/src/UIEventsAPI/MouseEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = mouseEvent +type t = mouseEvent = {...mouseEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MouseEvent) diff --git a/src/UIEventsAPI/PointerEvent.res b/src/UIEventsAPI/PointerEvent.res index bf8d73ac..0900be40 100644 --- a/src/UIEventsAPI/PointerEvent.res +++ b/src/UIEventsAPI/PointerEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = pointerEvent +type t = pointerEvent = {...pointerEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/PointerEvent) diff --git a/src/UIEventsAPI/Touch.res b/src/UIEventsAPI/Touch.res index 3a669c32..38b341fe 100644 --- a/src/UIEventsAPI/Touch.res +++ b/src/UIEventsAPI/Touch.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = touch +type t = touch = {...touch} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Touch) diff --git a/src/UIEventsAPI/TouchEvent.res b/src/UIEventsAPI/TouchEvent.res index bd6da76a..ff1c4482 100644 --- a/src/UIEventsAPI/TouchEvent.res +++ b/src/UIEventsAPI/TouchEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = touchEvent +type t = touchEvent = {...touchEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TouchEvent) diff --git a/src/UIEventsAPI/TouchList.res b/src/UIEventsAPI/TouchList.res index e35cb035..3a6a7d6e 100644 --- a/src/UIEventsAPI/TouchList.res +++ b/src/UIEventsAPI/TouchList.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = touchList +type t = touchList = {...touchList} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TouchList/item) diff --git a/src/UIEventsAPI/UIEvent.res b/src/UIEventsAPI/UIEvent.res index 6003c5f6..adc0cb2a 100644 --- a/src/UIEventsAPI/UIEvent.res +++ b/src/UIEventsAPI/UIEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = uiEvent +type t = uiEvent = {...uiEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/UIEvent) diff --git a/src/UIEventsAPI/WheelEvent.res b/src/UIEventsAPI/WheelEvent.res index 97ed8ebe..d9bc6993 100644 --- a/src/UIEventsAPI/WheelEvent.res +++ b/src/UIEventsAPI/WheelEvent.res @@ -1,6 +1,6 @@ open UIEventsTypes -type t = wheelEvent +type t = wheelEvent = {...wheelEvent} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WheelEvent) diff --git a/src/ViewTransitionsAPI/ViewTransition.res b/src/ViewTransitionsAPI/ViewTransition.res index 2097c702..c9560df2 100644 --- a/src/ViewTransitionsAPI/ViewTransition.res +++ b/src/ViewTransitionsAPI/ViewTransition.res @@ -1,6 +1,6 @@ open ViewTransitionsTypes -type t = viewTransition +type t = viewTransition = {...viewTransition} /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/ViewTransition/skipTransition)