diff --git a/src/CSSFontLoadingAPI/FontFaceSet.res b/src/CSSFontLoadingAPI/FontFaceSet.res index ce5457b..dae43cc 100644 --- a/src/CSSFontLoadingAPI/FontFaceSet.res +++ b/src/CSSFontLoadingAPI/FontFaceSet.res @@ -1,6 +1,7 @@ open EventAPI open CSSFontLoadingAPI +external asEventTarget: fontFaceSet => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/CanvasAPI/OffscreenCanvas.res b/src/CanvasAPI/OffscreenCanvas.res index 143eed6..76d501b 100644 --- a/src/CanvasAPI/OffscreenCanvas.res +++ b/src/CanvasAPI/OffscreenCanvas.res @@ -10,6 +10,7 @@ open FileAPI @new external make: (~width: int, ~height: int) => offscreenCanvas = "OffscreenCanvas" +external asEventTarget: offscreenCanvas => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/ChannelMessagingAPI/MessagePort.res b/src/ChannelMessagingAPI/MessagePort.res index 18e8a95..8455730 100644 --- a/src/ChannelMessagingAPI/MessagePort.res +++ b/src/ChannelMessagingAPI/MessagePort.res @@ -2,6 +2,7 @@ open EventAPI open ChannelMessagingAPI open Prelude +external asEventTarget: messagePort => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/ClipboardAPI/Clipboard.res b/src/ClipboardAPI/Clipboard.res index a33da65..3f0f414 100644 --- a/src/ClipboardAPI/Clipboard.res +++ b/src/ClipboardAPI/Clipboard.res @@ -1,6 +1,7 @@ open EventAPI open ClipboardAPI +external asEventTarget: clipboard => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/DOMAPI/Animation.res b/src/DOMAPI/Animation.res index f42a0ab..42ae3ec 100644 --- a/src/DOMAPI/Animation.res +++ b/src/DOMAPI/Animation.res @@ -8,6 +8,7 @@ open DOMAPI external make: (~effect: animationEffect=?, ~timeline: animationTimeline=?) => animation = "Animation" +external asEventTarget: animation => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/DOMAPI/CSSStyleSheet.res b/src/DOMAPI/CSSStyleSheet.res index 70afd20..b19dcf1 100644 --- a/src/DOMAPI/CSSStyleSheet.res +++ b/src/DOMAPI/CSSStyleSheet.res @@ -6,6 +6,7 @@ open DOMAPI @new external make: (~options: cssStyleSheetInit=?) => cssStyleSheet = "CSSStyleSheet" +external asStyleSheet: cssStyleSheet => styleSheet = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule) */ diff --git a/src/DOMAPI/CharacterData.res b/src/DOMAPI/CharacterData.res index a0749a3..cefd55b 100644 --- a/src/DOMAPI/CharacterData.res +++ b/src/DOMAPI/CharacterData.res @@ -1,6 +1,8 @@ open DOMAPI open EventAPI +external asNode: characterData => node = "%identity" +external asEventTarget: characterData => eventTarget = "%identity" /** Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes. diff --git a/src/DOMAPI/Comment.res b/src/DOMAPI/Comment.res index 3d72e15..dbc0b85 100644 --- a/src/DOMAPI/Comment.res +++ b/src/DOMAPI/Comment.res @@ -7,6 +7,9 @@ open EventAPI @new external make: (~data: string=?) => comment = "Comment" +external asCharacterData: comment => characterData = "%identity" +external asNode: comment => node = "%identity" +external asEventTarget: comment => eventTarget = "%identity" /** Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes. diff --git a/src/DOMAPI/DOMMatrix.res b/src/DOMAPI/DOMMatrix.res index 166a394..6bc3d05 100644 --- a/src/DOMAPI/DOMMatrix.res +++ b/src/DOMAPI/DOMMatrix.res @@ -13,6 +13,7 @@ external make: (~init: string=?) => domMatrix = "DOMMatrix" @new external make2: (~init: array=?) => domMatrix = "DOMMatrix" +external asDOMMatrixReadOnly: domMatrix => domMatrixReadOnly = "%identity" @scope("DOMMatrix") external fromMatrix: (~other: domMatrixInit=?) => domMatrixReadOnly = "fromMatrix" diff --git a/src/DOMAPI/DOMPoint.res b/src/DOMAPI/DOMPoint.res index 09e3ab4..75c31e9 100644 --- a/src/DOMAPI/DOMPoint.res +++ b/src/DOMAPI/DOMPoint.res @@ -6,6 +6,7 @@ open DOMAPI @new external make: (~x: float=?, ~y: float=?, ~z: float=?, ~w: float=?) => domPoint = "DOMPoint" +external asDOMPointReadOnly: domPoint => domPointReadOnly = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static) */ diff --git a/src/DOMAPI/DOMRect.res b/src/DOMAPI/DOMRect.res index 645893a..6bcb61f 100644 --- a/src/DOMAPI/DOMRect.res +++ b/src/DOMAPI/DOMRect.res @@ -6,6 +6,7 @@ open DOMAPI @new external make: (~x: float=?, ~y: float=?, ~width: float=?, ~height: float=?) => domRect = "DOMRect" +external asDOMRectReadOnly: domRect => domRectReadOnly = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static) */ diff --git a/src/DOMAPI/Document.res b/src/DOMAPI/Document.res index cc7121b..1df376d 100644 --- a/src/DOMAPI/Document.res +++ b/src/DOMAPI/Document.res @@ -8,6 +8,8 @@ open ViewTransitionsAPI @new external make: unit => document = "Document" +external asNode: document => node = "%identity" +external asEventTarget: document => eventTarget = "%identity" /** Returns the first element within node's descendants whose ID is elementId. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/getElementById) diff --git a/src/DOMAPI/DocumentFragment.res b/src/DOMAPI/DocumentFragment.res index 19a4840..edea67e 100644 --- a/src/DOMAPI/DocumentFragment.res +++ b/src/DOMAPI/DocumentFragment.res @@ -7,6 +7,8 @@ open EventAPI @new external make: unit => documentFragment = "DocumentFragment" +external asNode: documentFragment => node = "%identity" +external asEventTarget: documentFragment => eventTarget = "%identity" /** Returns the first element within node's descendants whose ID is elementId. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/getElementById) diff --git a/src/DOMAPI/DocumentTimeline.res b/src/DOMAPI/DocumentTimeline.res index a08d2e2..d46f2cf 100644 --- a/src/DOMAPI/DocumentTimeline.res +++ b/src/DOMAPI/DocumentTimeline.res @@ -5,3 +5,5 @@ open DOMAPI */ @new external make: (~options: documentTimelineOptions=?) => documentTimeline = "DocumentTimeline" + +external asAnimationTimeline: documentTimeline => animationTimeline = "%identity" diff --git a/src/DOMAPI/Element.res b/src/DOMAPI/Element.res index 0ff5a66..ffa6fb5 100644 --- a/src/DOMAPI/Element.res +++ b/src/DOMAPI/Element.res @@ -2,6 +2,8 @@ open DOMAPI open Prelude open EventAPI +external asNode: element => node = "%identity" +external asEventTarget: element => eventTarget = "%identity" /** Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes. diff --git a/src/DOMAPI/HTMLAnchorElement.res b/src/DOMAPI/HTMLAnchorElement.res index 2f0cba0..3000aaa 100644 --- a/src/DOMAPI/HTMLAnchorElement.res +++ b/src/DOMAPI/HTMLAnchorElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlAnchorElement => htmlElement = "%identity" +external asElement: htmlAnchorElement => element = "%identity" +external asNode: htmlAnchorElement => node = "%identity" +external asEventTarget: htmlAnchorElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLAreaElement.res b/src/DOMAPI/HTMLAreaElement.res index ee23ec0..e37eeb6 100644 --- a/src/DOMAPI/HTMLAreaElement.res +++ b/src/DOMAPI/HTMLAreaElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlAreaElement => htmlElement = "%identity" +external asElement: htmlAreaElement => element = "%identity" +external asNode: htmlAreaElement => node = "%identity" +external asEventTarget: htmlAreaElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLAudioElement.res b/src/DOMAPI/HTMLAudioElement.res index ac80437..1d07c50 100644 --- a/src/DOMAPI/HTMLAudioElement.res +++ b/src/DOMAPI/HTMLAudioElement.res @@ -4,6 +4,11 @@ open EventAPI open WebVTTAPI open EncryptedMediaExtensionsAPI +external asHTMLMediaElement: htmlAudioElement => htmlMediaElement = "%identity" +external asHTMLElement: htmlAudioElement => htmlElement = "%identity" +external asElement: htmlAudioElement => element = "%identity" +external asNode: htmlAudioElement => node = "%identity" +external asEventTarget: htmlAudioElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLBRElement.res b/src/DOMAPI/HTMLBRElement.res index deddf28..c896652 100644 --- a/src/DOMAPI/HTMLBRElement.res +++ b/src/DOMAPI/HTMLBRElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlbrElement => htmlElement = "%identity" +external asElement: htmlbrElement => element = "%identity" +external asNode: htmlbrElement => node = "%identity" +external asEventTarget: htmlbrElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLBaseElement.res b/src/DOMAPI/HTMLBaseElement.res index 4e865e2..97343d8 100644 --- a/src/DOMAPI/HTMLBaseElement.res +++ b/src/DOMAPI/HTMLBaseElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlBaseElement => htmlElement = "%identity" +external asElement: htmlBaseElement => element = "%identity" +external asNode: htmlBaseElement => node = "%identity" +external asEventTarget: htmlBaseElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLBodyElement.res b/src/DOMAPI/HTMLBodyElement.res index 34e7032..f85df6b 100644 --- a/src/DOMAPI/HTMLBodyElement.res +++ b/src/DOMAPI/HTMLBodyElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlBodyElement => htmlElement = "%identity" +external asElement: htmlBodyElement => element = "%identity" +external asNode: htmlBodyElement => node = "%identity" +external asEventTarget: htmlBodyElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLButtonElement.res b/src/DOMAPI/HTMLButtonElement.res index 49f9c55..14c8299 100644 --- a/src/DOMAPI/HTMLButtonElement.res +++ b/src/DOMAPI/HTMLButtonElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlButtonElement => htmlElement = "%identity" +external asElement: htmlButtonElement => element = "%identity" +external asNode: htmlButtonElement => node = "%identity" +external asEventTarget: htmlButtonElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLCanvasElement.res b/src/DOMAPI/HTMLCanvasElement.res index 32bfd15..e9b7a09 100644 --- a/src/DOMAPI/HTMLCanvasElement.res +++ b/src/DOMAPI/HTMLCanvasElement.res @@ -4,6 +4,10 @@ open EventAPI open CanvasAPI open MediaCaptureAndStreamsAPI +external asHTMLElement: htmlCanvasElement => htmlElement = "%identity" +external asElement: htmlCanvasElement => element = "%identity" +external asNode: htmlCanvasElement => node = "%identity" +external asEventTarget: htmlCanvasElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLCollectionOf.res b/src/DOMAPI/HTMLCollectionOf.res index e99a40c..dcd63fb 100644 --- a/src/DOMAPI/HTMLCollectionOf.res +++ b/src/DOMAPI/HTMLCollectionOf.res @@ -1,5 +1,6 @@ open DOMAPI +external asHTMLCollection: htmlCollectionOf<'t> => htmlCollection = "%identity" /** Retrieves an object from various collections. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item) diff --git a/src/DOMAPI/HTMLDListElement.res b/src/DOMAPI/HTMLDListElement.res index 7f01703..27eab57 100644 --- a/src/DOMAPI/HTMLDListElement.res +++ b/src/DOMAPI/HTMLDListElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmldListElement => htmlElement = "%identity" +external asElement: htmldListElement => element = "%identity" +external asNode: htmldListElement => node = "%identity" +external asEventTarget: htmldListElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLDataElement.res b/src/DOMAPI/HTMLDataElement.res index cd439f9..eae200e 100644 --- a/src/DOMAPI/HTMLDataElement.res +++ b/src/DOMAPI/HTMLDataElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlDataElement => htmlElement = "%identity" +external asElement: htmlDataElement => element = "%identity" +external asNode: htmlDataElement => node = "%identity" +external asEventTarget: htmlDataElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLDataListElement.res b/src/DOMAPI/HTMLDataListElement.res index d1fc70b..dc80a6d 100644 --- a/src/DOMAPI/HTMLDataListElement.res +++ b/src/DOMAPI/HTMLDataListElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlDataListElement => htmlElement = "%identity" +external asElement: htmlDataListElement => element = "%identity" +external asNode: htmlDataListElement => node = "%identity" +external asEventTarget: htmlDataListElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLDialogElement.res b/src/DOMAPI/HTMLDialogElement.res index d75861f..bdacf2c 100644 --- a/src/DOMAPI/HTMLDialogElement.res +++ b/src/DOMAPI/HTMLDialogElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlDialogElement => htmlElement = "%identity" +external asElement: htmlDialogElement => element = "%identity" +external asNode: htmlDialogElement => node = "%identity" +external asEventTarget: htmlDialogElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLDivElement.res b/src/DOMAPI/HTMLDivElement.res index 96df522..2f5e86e 100644 --- a/src/DOMAPI/HTMLDivElement.res +++ b/src/DOMAPI/HTMLDivElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlDivElement => htmlElement = "%identity" +external asElement: htmlDivElement => element = "%identity" +external asNode: htmlDivElement => node = "%identity" +external asEventTarget: htmlDivElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLElement.res b/src/DOMAPI/HTMLElement.res index 76f3d00..306b568 100644 --- a/src/DOMAPI/HTMLElement.res +++ b/src/DOMAPI/HTMLElement.res @@ -2,6 +2,9 @@ open DOMAPI open Prelude open EventAPI +external asElement: htmlElement => element = "%identity" +external asNode: htmlElement => node = "%identity" +external asEventTarget: htmlElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLEmbedElement.res b/src/DOMAPI/HTMLEmbedElement.res index d20c706..aa7ce6c 100644 --- a/src/DOMAPI/HTMLEmbedElement.res +++ b/src/DOMAPI/HTMLEmbedElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlEmbedElement => htmlElement = "%identity" +external asElement: htmlEmbedElement => element = "%identity" +external asNode: htmlEmbedElement => node = "%identity" +external asEventTarget: htmlEmbedElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLFieldSetElement.res b/src/DOMAPI/HTMLFieldSetElement.res index abe69eb..a394805 100644 --- a/src/DOMAPI/HTMLFieldSetElement.res +++ b/src/DOMAPI/HTMLFieldSetElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlFieldSetElement => htmlElement = "%identity" +external asElement: htmlFieldSetElement => element = "%identity" +external asNode: htmlFieldSetElement => node = "%identity" +external asEventTarget: htmlFieldSetElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLFormControlsCollection.res b/src/DOMAPI/HTMLFormControlsCollection.res index 7dca98f..3ab3934 100644 --- a/src/DOMAPI/HTMLFormControlsCollection.res +++ b/src/DOMAPI/HTMLFormControlsCollection.res @@ -1,5 +1,6 @@ open DOMAPI +external asHTMLCollection: htmlFormControlsCollection => htmlCollection = "%identity" /** Retrieves an object from various collections. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item) diff --git a/src/DOMAPI/HTMLFormElement.res b/src/DOMAPI/HTMLFormElement.res index dd7bd54..000e865 100644 --- a/src/DOMAPI/HTMLFormElement.res +++ b/src/DOMAPI/HTMLFormElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlFormElement => htmlElement = "%identity" +external asElement: htmlFormElement => element = "%identity" +external asNode: htmlFormElement => node = "%identity" +external asEventTarget: htmlFormElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLFrameSetElement.res b/src/DOMAPI/HTMLFrameSetElement.res index 6586c73..4c9bdc4 100644 --- a/src/DOMAPI/HTMLFrameSetElement.res +++ b/src/DOMAPI/HTMLFrameSetElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlFrameSetElement => htmlElement = "%identity" +external asElement: htmlFrameSetElement => element = "%identity" +external asNode: htmlFrameSetElement => node = "%identity" +external asEventTarget: htmlFrameSetElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLHRElement.res b/src/DOMAPI/HTMLHRElement.res index a456246..df19451 100644 --- a/src/DOMAPI/HTMLHRElement.res +++ b/src/DOMAPI/HTMLHRElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlhrElement => htmlElement = "%identity" +external asElement: htmlhrElement => element = "%identity" +external asNode: htmlhrElement => node = "%identity" +external asEventTarget: htmlhrElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLHeadElement.res b/src/DOMAPI/HTMLHeadElement.res index 59015f9..8b14127 100644 --- a/src/DOMAPI/HTMLHeadElement.res +++ b/src/DOMAPI/HTMLHeadElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlHeadElement => htmlElement = "%identity" +external asElement: htmlHeadElement => element = "%identity" +external asNode: htmlHeadElement => node = "%identity" +external asEventTarget: htmlHeadElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLHeadingElement.res b/src/DOMAPI/HTMLHeadingElement.res index f88042f..d1ce3c9 100644 --- a/src/DOMAPI/HTMLHeadingElement.res +++ b/src/DOMAPI/HTMLHeadingElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlHeadingElement => htmlElement = "%identity" +external asElement: htmlHeadingElement => element = "%identity" +external asNode: htmlHeadingElement => node = "%identity" +external asEventTarget: htmlHeadingElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLHtmlElement.res b/src/DOMAPI/HTMLHtmlElement.res index e70ff29..3168840 100644 --- a/src/DOMAPI/HTMLHtmlElement.res +++ b/src/DOMAPI/HTMLHtmlElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlHtmlElement => htmlElement = "%identity" +external asElement: htmlHtmlElement => element = "%identity" +external asNode: htmlHtmlElement => node = "%identity" +external asEventTarget: htmlHtmlElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLIFrameElement.res b/src/DOMAPI/HTMLIFrameElement.res index 7541404..8886282 100644 --- a/src/DOMAPI/HTMLIFrameElement.res +++ b/src/DOMAPI/HTMLIFrameElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmliFrameElement => htmlElement = "%identity" +external asElement: htmliFrameElement => element = "%identity" +external asNode: htmliFrameElement => node = "%identity" +external asEventTarget: htmliFrameElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLImageElement.res b/src/DOMAPI/HTMLImageElement.res index 1ddb629..0004c1b 100644 --- a/src/DOMAPI/HTMLImageElement.res +++ b/src/DOMAPI/HTMLImageElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlImageElement => htmlElement = "%identity" +external asElement: htmlImageElement => element = "%identity" +external asNode: htmlImageElement => node = "%identity" +external asEventTarget: htmlImageElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLInputElement.res b/src/DOMAPI/HTMLInputElement.res index ec97419..8911e88 100644 --- a/src/DOMAPI/HTMLInputElement.res +++ b/src/DOMAPI/HTMLInputElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlInputElement => htmlElement = "%identity" +external asElement: htmlInputElement => element = "%identity" +external asNode: htmlInputElement => node = "%identity" +external asEventTarget: htmlInputElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLLIElement.res b/src/DOMAPI/HTMLLIElement.res index 396d485..af83e00 100644 --- a/src/DOMAPI/HTMLLIElement.res +++ b/src/DOMAPI/HTMLLIElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlliElement => htmlElement = "%identity" +external asElement: htmlliElement => element = "%identity" +external asNode: htmlliElement => node = "%identity" +external asEventTarget: htmlliElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLLabelElement.res b/src/DOMAPI/HTMLLabelElement.res index 3900ced..8b08406 100644 --- a/src/DOMAPI/HTMLLabelElement.res +++ b/src/DOMAPI/HTMLLabelElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlLabelElement => htmlElement = "%identity" +external asElement: htmlLabelElement => element = "%identity" +external asNode: htmlLabelElement => node = "%identity" +external asEventTarget: htmlLabelElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLLegendElement.res b/src/DOMAPI/HTMLLegendElement.res index eb5b8fa..9734f0d 100644 --- a/src/DOMAPI/HTMLLegendElement.res +++ b/src/DOMAPI/HTMLLegendElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlLegendElement => htmlElement = "%identity" +external asElement: htmlLegendElement => element = "%identity" +external asNode: htmlLegendElement => node = "%identity" +external asEventTarget: htmlLegendElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLLinkElement.res b/src/DOMAPI/HTMLLinkElement.res index 4005770..25d9c49 100644 --- a/src/DOMAPI/HTMLLinkElement.res +++ b/src/DOMAPI/HTMLLinkElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlLinkElement => htmlElement = "%identity" +external asElement: htmlLinkElement => element = "%identity" +external asNode: htmlLinkElement => node = "%identity" +external asEventTarget: htmlLinkElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLMapElement.res b/src/DOMAPI/HTMLMapElement.res index 7ad420d..ecab55b 100644 --- a/src/DOMAPI/HTMLMapElement.res +++ b/src/DOMAPI/HTMLMapElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlMapElement => htmlElement = "%identity" +external asElement: htmlMapElement => element = "%identity" +external asNode: htmlMapElement => node = "%identity" +external asEventTarget: htmlMapElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLMediaElement.res b/src/DOMAPI/HTMLMediaElement.res index cad195f..5d2b925 100644 --- a/src/DOMAPI/HTMLMediaElement.res +++ b/src/DOMAPI/HTMLMediaElement.res @@ -4,6 +4,10 @@ open EventAPI open WebVTTAPI open EncryptedMediaExtensionsAPI +external asHTMLElement: htmlMediaElement => htmlElement = "%identity" +external asElement: htmlMediaElement => element = "%identity" +external asNode: htmlMediaElement => node = "%identity" +external asEventTarget: htmlMediaElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLMenuElement.res b/src/DOMAPI/HTMLMenuElement.res index 45007a5..9050f33 100644 --- a/src/DOMAPI/HTMLMenuElement.res +++ b/src/DOMAPI/HTMLMenuElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlMenuElement => htmlElement = "%identity" +external asElement: htmlMenuElement => element = "%identity" +external asNode: htmlMenuElement => node = "%identity" +external asEventTarget: htmlMenuElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLMetaElement.res b/src/DOMAPI/HTMLMetaElement.res index b96eed2..7524aba 100644 --- a/src/DOMAPI/HTMLMetaElement.res +++ b/src/DOMAPI/HTMLMetaElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlMetaElement => htmlElement = "%identity" +external asElement: htmlMetaElement => element = "%identity" +external asNode: htmlMetaElement => node = "%identity" +external asEventTarget: htmlMetaElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLMeterElement.res b/src/DOMAPI/HTMLMeterElement.res index 5416ac5..162f2b8 100644 --- a/src/DOMAPI/HTMLMeterElement.res +++ b/src/DOMAPI/HTMLMeterElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlMeterElement => htmlElement = "%identity" +external asElement: htmlMeterElement => element = "%identity" +external asNode: htmlMeterElement => node = "%identity" +external asEventTarget: htmlMeterElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLModElement.res b/src/DOMAPI/HTMLModElement.res index 6f3e2fc..83e6900 100644 --- a/src/DOMAPI/HTMLModElement.res +++ b/src/DOMAPI/HTMLModElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlModElement => htmlElement = "%identity" +external asElement: htmlModElement => element = "%identity" +external asNode: htmlModElement => node = "%identity" +external asEventTarget: htmlModElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLOListElement.res b/src/DOMAPI/HTMLOListElement.res index ad0c6b1..9afe946 100644 --- a/src/DOMAPI/HTMLOListElement.res +++ b/src/DOMAPI/HTMLOListElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmloListElement => htmlElement = "%identity" +external asElement: htmloListElement => element = "%identity" +external asNode: htmloListElement => node = "%identity" +external asEventTarget: htmloListElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLObjectElement.res b/src/DOMAPI/HTMLObjectElement.res index d991597..204d76b 100644 --- a/src/DOMAPI/HTMLObjectElement.res +++ b/src/DOMAPI/HTMLObjectElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlObjectElement => htmlElement = "%identity" +external asElement: htmlObjectElement => element = "%identity" +external asNode: htmlObjectElement => node = "%identity" +external asEventTarget: htmlObjectElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLOptGroupElement.res b/src/DOMAPI/HTMLOptGroupElement.res index c2a7898..a0847b1 100644 --- a/src/DOMAPI/HTMLOptGroupElement.res +++ b/src/DOMAPI/HTMLOptGroupElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlOptGroupElement => htmlElement = "%identity" +external asElement: htmlOptGroupElement => element = "%identity" +external asNode: htmlOptGroupElement => node = "%identity" +external asEventTarget: htmlOptGroupElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLOptionElement.res b/src/DOMAPI/HTMLOptionElement.res index 55b141b..a0589ce 100644 --- a/src/DOMAPI/HTMLOptionElement.res +++ b/src/DOMAPI/HTMLOptionElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlOptionElement => htmlElement = "%identity" +external asElement: htmlOptionElement => element = "%identity" +external asNode: htmlOptionElement => node = "%identity" +external asEventTarget: htmlOptionElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLOutputElement.res b/src/DOMAPI/HTMLOutputElement.res index f402821..58805ba 100644 --- a/src/DOMAPI/HTMLOutputElement.res +++ b/src/DOMAPI/HTMLOutputElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlOutputElement => htmlElement = "%identity" +external asElement: htmlOutputElement => element = "%identity" +external asNode: htmlOutputElement => node = "%identity" +external asEventTarget: htmlOutputElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLParagraphElement.res b/src/DOMAPI/HTMLParagraphElement.res index c804c49..fa5f065 100644 --- a/src/DOMAPI/HTMLParagraphElement.res +++ b/src/DOMAPI/HTMLParagraphElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlParagraphElement => htmlElement = "%identity" +external asElement: htmlParagraphElement => element = "%identity" +external asNode: htmlParagraphElement => node = "%identity" +external asEventTarget: htmlParagraphElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLPictureElement.res b/src/DOMAPI/HTMLPictureElement.res index 4c25a0b..c335afb 100644 --- a/src/DOMAPI/HTMLPictureElement.res +++ b/src/DOMAPI/HTMLPictureElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlPictureElement => htmlElement = "%identity" +external asElement: htmlPictureElement => element = "%identity" +external asNode: htmlPictureElement => node = "%identity" +external asEventTarget: htmlPictureElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLPreElement.res b/src/DOMAPI/HTMLPreElement.res index 3e28f6b..d8d1ba5 100644 --- a/src/DOMAPI/HTMLPreElement.res +++ b/src/DOMAPI/HTMLPreElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlPreElement => htmlElement = "%identity" +external asElement: htmlPreElement => element = "%identity" +external asNode: htmlPreElement => node = "%identity" +external asEventTarget: htmlPreElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLProgressElement.res b/src/DOMAPI/HTMLProgressElement.res index 482ee48..1b571be 100644 --- a/src/DOMAPI/HTMLProgressElement.res +++ b/src/DOMAPI/HTMLProgressElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlProgressElement => htmlElement = "%identity" +external asElement: htmlProgressElement => element = "%identity" +external asNode: htmlProgressElement => node = "%identity" +external asEventTarget: htmlProgressElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLQuoteElement.res b/src/DOMAPI/HTMLQuoteElement.res index 7c85e1a..da25ec8 100644 --- a/src/DOMAPI/HTMLQuoteElement.res +++ b/src/DOMAPI/HTMLQuoteElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlQuoteElement => htmlElement = "%identity" +external asElement: htmlQuoteElement => element = "%identity" +external asNode: htmlQuoteElement => node = "%identity" +external asEventTarget: htmlQuoteElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLScriptElement.res b/src/DOMAPI/HTMLScriptElement.res index 6808622..c0bb13b 100644 --- a/src/DOMAPI/HTMLScriptElement.res +++ b/src/DOMAPI/HTMLScriptElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlScriptElement => htmlElement = "%identity" +external asElement: htmlScriptElement => element = "%identity" +external asNode: htmlScriptElement => node = "%identity" +external asEventTarget: htmlScriptElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLSelectElement.res b/src/DOMAPI/HTMLSelectElement.res index cd5ffe3..a46885e 100644 --- a/src/DOMAPI/HTMLSelectElement.res +++ b/src/DOMAPI/HTMLSelectElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlSelectElement => htmlElement = "%identity" +external asElement: htmlSelectElement => element = "%identity" +external asNode: htmlSelectElement => node = "%identity" +external asEventTarget: htmlSelectElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLSlotElement.res b/src/DOMAPI/HTMLSlotElement.res index bcd46fa..caac384 100644 --- a/src/DOMAPI/HTMLSlotElement.res +++ b/src/DOMAPI/HTMLSlotElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlSlotElement => htmlElement = "%identity" +external asElement: htmlSlotElement => element = "%identity" +external asNode: htmlSlotElement => node = "%identity" +external asEventTarget: htmlSlotElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLSourceElement.res b/src/DOMAPI/HTMLSourceElement.res index 44fde40..b6d4991 100644 --- a/src/DOMAPI/HTMLSourceElement.res +++ b/src/DOMAPI/HTMLSourceElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlSourceElement => htmlElement = "%identity" +external asElement: htmlSourceElement => element = "%identity" +external asNode: htmlSourceElement => node = "%identity" +external asEventTarget: htmlSourceElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLSpanElement.res b/src/DOMAPI/HTMLSpanElement.res index 45d006d..34ea7e3 100644 --- a/src/DOMAPI/HTMLSpanElement.res +++ b/src/DOMAPI/HTMLSpanElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlSpanElement => htmlElement = "%identity" +external asElement: htmlSpanElement => element = "%identity" +external asNode: htmlSpanElement => node = "%identity" +external asEventTarget: htmlSpanElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLStyleElement.res b/src/DOMAPI/HTMLStyleElement.res index dc76ed8..0e11b67 100644 --- a/src/DOMAPI/HTMLStyleElement.res +++ b/src/DOMAPI/HTMLStyleElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlStyleElement => htmlElement = "%identity" +external asElement: htmlStyleElement => element = "%identity" +external asNode: htmlStyleElement => node = "%identity" +external asEventTarget: htmlStyleElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTableCaptionElement.res b/src/DOMAPI/HTMLTableCaptionElement.res index bfb6eef..e5e8372 100644 --- a/src/DOMAPI/HTMLTableCaptionElement.res +++ b/src/DOMAPI/HTMLTableCaptionElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTableCaptionElement => htmlElement = "%identity" +external asElement: htmlTableCaptionElement => element = "%identity" +external asNode: htmlTableCaptionElement => node = "%identity" +external asEventTarget: htmlTableCaptionElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTableCellElement.res b/src/DOMAPI/HTMLTableCellElement.res index b52d98a..79ad732 100644 --- a/src/DOMAPI/HTMLTableCellElement.res +++ b/src/DOMAPI/HTMLTableCellElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTableCellElement => htmlElement = "%identity" +external asElement: htmlTableCellElement => element = "%identity" +external asNode: htmlTableCellElement => node = "%identity" +external asEventTarget: htmlTableCellElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTableElement.res b/src/DOMAPI/HTMLTableElement.res index c3efa4f..773c32c 100644 --- a/src/DOMAPI/HTMLTableElement.res +++ b/src/DOMAPI/HTMLTableElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTableElement => htmlElement = "%identity" +external asElement: htmlTableElement => element = "%identity" +external asNode: htmlTableElement => node = "%identity" +external asEventTarget: htmlTableElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTableRowElement.res b/src/DOMAPI/HTMLTableRowElement.res index b921f16..f55720a 100644 --- a/src/DOMAPI/HTMLTableRowElement.res +++ b/src/DOMAPI/HTMLTableRowElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTableRowElement => htmlElement = "%identity" +external asElement: htmlTableRowElement => element = "%identity" +external asNode: htmlTableRowElement => node = "%identity" +external asEventTarget: htmlTableRowElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTableSectionElement.res b/src/DOMAPI/HTMLTableSectionElement.res index 4956a30..c7d86d0 100644 --- a/src/DOMAPI/HTMLTableSectionElement.res +++ b/src/DOMAPI/HTMLTableSectionElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTableSectionElement => htmlElement = "%identity" +external asElement: htmlTableSectionElement => element = "%identity" +external asNode: htmlTableSectionElement => node = "%identity" +external asEventTarget: htmlTableSectionElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTemplateElement.res b/src/DOMAPI/HTMLTemplateElement.res index 2a27ce4..72bc608 100644 --- a/src/DOMAPI/HTMLTemplateElement.res +++ b/src/DOMAPI/HTMLTemplateElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTemplateElement => htmlElement = "%identity" +external asElement: htmlTemplateElement => element = "%identity" +external asNode: htmlTemplateElement => node = "%identity" +external asEventTarget: htmlTemplateElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTextAreaElement.res b/src/DOMAPI/HTMLTextAreaElement.res index d70f2a6..c4732ac 100644 --- a/src/DOMAPI/HTMLTextAreaElement.res +++ b/src/DOMAPI/HTMLTextAreaElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTextAreaElement => htmlElement = "%identity" +external asElement: htmlTextAreaElement => element = "%identity" +external asNode: htmlTextAreaElement => node = "%identity" +external asEventTarget: htmlTextAreaElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTimeElement.res b/src/DOMAPI/HTMLTimeElement.res index 1b08c4b..e57a8e0 100644 --- a/src/DOMAPI/HTMLTimeElement.res +++ b/src/DOMAPI/HTMLTimeElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTimeElement => htmlElement = "%identity" +external asElement: htmlTimeElement => element = "%identity" +external asNode: htmlTimeElement => node = "%identity" +external asEventTarget: htmlTimeElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTitleElement.res b/src/DOMAPI/HTMLTitleElement.res index 4256c59..d04d7c7 100644 --- a/src/DOMAPI/HTMLTitleElement.res +++ b/src/DOMAPI/HTMLTitleElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTitleElement => htmlElement = "%identity" +external asElement: htmlTitleElement => element = "%identity" +external asNode: htmlTitleElement => node = "%identity" +external asEventTarget: htmlTitleElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLTrackElement.res b/src/DOMAPI/HTMLTrackElement.res index 91a8565..0f1d1db 100644 --- a/src/DOMAPI/HTMLTrackElement.res +++ b/src/DOMAPI/HTMLTrackElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmlTrackElement => htmlElement = "%identity" +external asElement: htmlTrackElement => element = "%identity" +external asNode: htmlTrackElement => node = "%identity" +external asEventTarget: htmlTrackElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLUListElement.res b/src/DOMAPI/HTMLUListElement.res index c3bf8e2..f2259a2 100644 --- a/src/DOMAPI/HTMLUListElement.res +++ b/src/DOMAPI/HTMLUListElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asHTMLElement: htmluListElement => htmlElement = "%identity" +external asElement: htmluListElement => element = "%identity" +external asNode: htmluListElement => node = "%identity" +external asEventTarget: htmluListElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/HTMLVideoElement.res b/src/DOMAPI/HTMLVideoElement.res index a381f66..ed68ad2 100644 --- a/src/DOMAPI/HTMLVideoElement.res +++ b/src/DOMAPI/HTMLVideoElement.res @@ -5,6 +5,11 @@ open WebVTTAPI open EncryptedMediaExtensionsAPI open PictureInPictureAPI +external asHTMLMediaElement: htmlVideoElement => htmlMediaElement = "%identity" +external asHTMLElement: htmlVideoElement => htmlElement = "%identity" +external asElement: htmlVideoElement => element = "%identity" +external asNode: htmlVideoElement => node = "%identity" +external asEventTarget: htmlVideoElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/MediaQueryList.res b/src/DOMAPI/MediaQueryList.res index e54d640..1484e7c 100644 --- a/src/DOMAPI/MediaQueryList.res +++ b/src/DOMAPI/MediaQueryList.res @@ -1,6 +1,7 @@ open EventAPI open DOMAPI +external asEventTarget: mediaQueryList => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/DOMAPI/Node.res b/src/DOMAPI/Node.res index d885f3a..aaee99e 100644 --- a/src/DOMAPI/Node.res +++ b/src/DOMAPI/Node.res @@ -1,6 +1,7 @@ open EventAPI open DOMAPI +external asEventTarget: node => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/DOMAPI/NodeListOf.res b/src/DOMAPI/NodeListOf.res index 2b23ea6..14b0085 100644 --- a/src/DOMAPI/NodeListOf.res +++ b/src/DOMAPI/NodeListOf.res @@ -1,5 +1,6 @@ open DOMAPI +external asNodeList: nodeListOf<'tNode> => nodeList = "%identity" /** Returns the node with index index from the collection. The nodes are sorted in tree order. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/NodeList/item) diff --git a/src/DOMAPI/Range.res b/src/DOMAPI/Range.res index 6fc1bd5..f0cdd60 100644 --- a/src/DOMAPI/Range.res +++ b/src/DOMAPI/Range.res @@ -6,6 +6,7 @@ open DOMAPI @new external make: unit => range = "Range" +external asAbstractRange: range => abstractRange = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Range/setStart) */ diff --git a/src/DOMAPI/SVGGraphicsElement.res b/src/DOMAPI/SVGGraphicsElement.res index cc4c242..79b026e 100644 --- a/src/DOMAPI/SVGGraphicsElement.res +++ b/src/DOMAPI/SVGGraphicsElement.res @@ -2,6 +2,10 @@ open DOMAPI open Prelude open EventAPI +external asSVGElement: svgGraphicsElement => svgElement = "%identity" +external asElement: svgGraphicsElement => element = "%identity" +external asNode: svgGraphicsElement => node = "%identity" +external asEventTarget: svgGraphicsElement => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */ diff --git a/src/DOMAPI/ScreenOrientation.res b/src/DOMAPI/ScreenOrientation.res index aa3a7d0..2fb9a69 100644 --- a/src/DOMAPI/ScreenOrientation.res +++ b/src/DOMAPI/ScreenOrientation.res @@ -1,6 +1,7 @@ open EventAPI open DOMAPI +external asEventTarget: screenOrientation => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/DOMAPI/ShadowRoot.res b/src/DOMAPI/ShadowRoot.res index f633648..27eafcd 100644 --- a/src/DOMAPI/ShadowRoot.res +++ b/src/DOMAPI/ShadowRoot.res @@ -1,6 +1,9 @@ open DOMAPI open EventAPI +external asDocumentFragment: shadowRoot => documentFragment = "%identity" +external asNode: shadowRoot => node = "%identity" +external asEventTarget: shadowRoot => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Document/getAnimations) */ diff --git a/src/DOMAPI/StylePropertyMap.res b/src/DOMAPI/StylePropertyMap.res index 96de6b3..98f12ff 100644 --- a/src/DOMAPI/StylePropertyMap.res +++ b/src/DOMAPI/StylePropertyMap.res @@ -1,5 +1,6 @@ open DOMAPI +external asStylePropertyMapReadOnly: stylePropertyMap => stylePropertyMapReadOnly = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/getAll) */ diff --git a/src/DOMAPI/Text.res b/src/DOMAPI/Text.res index 4c52cec..067ef71 100644 --- a/src/DOMAPI/Text.res +++ b/src/DOMAPI/Text.res @@ -7,6 +7,9 @@ open EventAPI @new external make: (~data: string=?) => text = "Text" +external asCharacterData: text => characterData = "%identity" +external asNode: text => node = "%identity" +external asEventTarget: text => eventTarget = "%identity" /** Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes. diff --git a/src/DOMAPI/TextTrackList.res b/src/DOMAPI/TextTrackList.res index 962c22e..6e55b3b 100644 --- a/src/DOMAPI/TextTrackList.res +++ b/src/DOMAPI/TextTrackList.res @@ -2,6 +2,7 @@ open EventAPI open DOMAPI open WebVTTAPI +external asEventTarget: textTrackList => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/DOMAPI/Window.res b/src/DOMAPI/Window.res index 3de9301..f1f640d 100644 --- a/src/DOMAPI/Window.res +++ b/src/DOMAPI/Window.res @@ -6,6 +6,7 @@ open ChannelMessagingAPI open FetchAPI open EventAPI +external asEventTarget: window => eventTarget = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Window/reportError) */ diff --git a/src/EncryptedMediaExtensionsAPI/MediaKeySession.res b/src/EncryptedMediaExtensionsAPI/MediaKeySession.res index 8d798a7..a49e8a0 100644 --- a/src/EncryptedMediaExtensionsAPI/MediaKeySession.res +++ b/src/EncryptedMediaExtensionsAPI/MediaKeySession.res @@ -1,6 +1,7 @@ open EventAPI open EncryptedMediaExtensionsAPI +external asEventTarget: mediaKeySession => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/EventAPI/AbortSignal.res b/src/EventAPI/AbortSignal.res index dac46bf..a5b4792 100644 --- a/src/EventAPI/AbortSignal.res +++ b/src/EventAPI/AbortSignal.res @@ -1,6 +1,7 @@ open EventAPI open Prelude +external asEventTarget: abortSignal => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/FileAPI/File.res b/src/FileAPI/File.res index 9f713eb..4b3c83e 100644 --- a/src/FileAPI/File.res +++ b/src/FileAPI/File.res @@ -10,6 +10,7 @@ external make: ( ~options: filePropertyBag=?, ) => file = "File" +external asBlob: file => blob = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Blob/slice) */ diff --git a/src/FileAPI/FileSystemDirectoryHandle.res b/src/FileAPI/FileSystemDirectoryHandle.res index 3757dae..3ad568d 100644 --- a/src/FileAPI/FileSystemDirectoryHandle.res +++ b/src/FileAPI/FileSystemDirectoryHandle.res @@ -1,5 +1,6 @@ open FileAPI +external asFileSystemHandle: fileSystemDirectoryHandle => fileSystemHandle = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry) */ diff --git a/src/FileAPI/FileSystemFileHandle.res b/src/FileAPI/FileSystemFileHandle.res index 7bf7abb..ef2cc4a 100644 --- a/src/FileAPI/FileSystemFileHandle.res +++ b/src/FileAPI/FileSystemFileHandle.res @@ -1,5 +1,6 @@ open FileAPI +external asFileSystemHandle: fileSystemFileHandle => fileSystemHandle = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry) */ diff --git a/src/FileAPI/FileSystemWritableFileStream.res b/src/FileAPI/FileSystemWritableFileStream.res index 5d139be..f10dcac 100644 --- a/src/FileAPI/FileSystemWritableFileStream.res +++ b/src/FileAPI/FileSystemWritableFileStream.res @@ -1,6 +1,7 @@ open Prelude open FileAPI +external asWritableStream: fileSystemWritableFileStream => writableStream<'w> = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WritableStream/abort) */ diff --git a/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res b/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res index 1aad3ad..94474f2 100644 --- a/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res +++ b/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res @@ -1,5 +1,6 @@ open FileAndDirectoryEntriesAPI +external asFileSystemEntry: fileSystemDirectoryEntry => fileSystemEntry = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/getParent) */ diff --git a/src/IndexedDBAPI/IDBDatabase.res b/src/IndexedDBAPI/IDBDatabase.res index 96e4d97..0c4f779 100644 --- a/src/IndexedDBAPI/IDBDatabase.res +++ b/src/IndexedDBAPI/IDBDatabase.res @@ -1,6 +1,7 @@ open EventAPI open IndexedDBAPI +external asEventTarget: idbDatabase => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/IndexedDBAPI/IDBTransaction.res b/src/IndexedDBAPI/IDBTransaction.res index 3381e13..1402ed3 100644 --- a/src/IndexedDBAPI/IDBTransaction.res +++ b/src/IndexedDBAPI/IDBTransaction.res @@ -1,6 +1,7 @@ open EventAPI open IndexedDBAPI +external asEventTarget: idbTransaction => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/MediaCaptureAndStreamsAPI/MediaDevices.res b/src/MediaCaptureAndStreamsAPI/MediaDevices.res index 9c4bbc1..cdfbf91 100644 --- a/src/MediaCaptureAndStreamsAPI/MediaDevices.res +++ b/src/MediaCaptureAndStreamsAPI/MediaDevices.res @@ -1,6 +1,7 @@ open EventAPI open MediaCaptureAndStreamsAPI +external asEventTarget: mediaDevices => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/MediaCaptureAndStreamsAPI/MediaStream.res b/src/MediaCaptureAndStreamsAPI/MediaStream.res index fe93ae7..9bb8362 100644 --- a/src/MediaCaptureAndStreamsAPI/MediaStream.res +++ b/src/MediaCaptureAndStreamsAPI/MediaStream.res @@ -19,6 +19,7 @@ external make2: mediaStream => mediaStream = "MediaStream" @new external make3: array => mediaStream = "MediaStream" +external asEventTarget: mediaStream => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res b/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res index 30b319e..8037f13 100644 --- a/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res +++ b/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res @@ -2,6 +2,7 @@ open EventAPI open MediaCaptureAndStreamsAPI open WebAudioAPI +external asEventTarget: mediaStreamTrack => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/NotificationAPI/Notification.res b/src/NotificationAPI/Notification.res index 42cdb44..c3dc13c 100644 --- a/src/NotificationAPI/Notification.res +++ b/src/NotificationAPI/Notification.res @@ -7,6 +7,7 @@ open NotificationAPI @new external make: (~title: string, ~options: notificationOptions=?) => notification = "Notification" +external asEventTarget: notification => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/PerformanceAPI/Performance.res b/src/PerformanceAPI/Performance.res index 84fb223..2ab7987 100644 --- a/src/PerformanceAPI/Performance.res +++ b/src/PerformanceAPI/Performance.res @@ -1,6 +1,7 @@ open EventAPI open PerformanceAPI +external asEventTarget: performance => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/PerformanceAPI/PerformanceMark.res b/src/PerformanceAPI/PerformanceMark.res index 6ded24a..271226f 100644 --- a/src/PerformanceAPI/PerformanceMark.res +++ b/src/PerformanceAPI/PerformanceMark.res @@ -7,6 +7,7 @@ open PerformanceAPI external make: (~markName: string, ~markOptions: performanceMarkOptions=?) => performanceMark = "PerformanceMark" +external asPerformanceEntry: performanceMark => performanceEntry = "%identity" /** [Read more on MDN](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/toJSON) */ diff --git a/src/Prelude.res b/src/Prelude.res index 3f4e035..18579a0 100644 --- a/src/Prelude.res +++ b/src/Prelude.res @@ -1,5 +1,8 @@ @@warning("-30") type any = {} + +external unsafeConversation: 'tinput => 'toutput = "%identity" + type bufferSource = any type bodyInit = any diff --git a/src/RemotePlaybackAPI/RemotePlayback.res b/src/RemotePlaybackAPI/RemotePlayback.res index 9b21f8f..ae4c9e9 100644 --- a/src/RemotePlaybackAPI/RemotePlayback.res +++ b/src/RemotePlaybackAPI/RemotePlayback.res @@ -1,6 +1,7 @@ open EventAPI open RemotePlaybackAPI +external asEventTarget: remotePlayback => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/ScreenWakeLockAPI/WakeLockSentinel.res b/src/ScreenWakeLockAPI/WakeLockSentinel.res index 76ec278..653f666 100644 --- a/src/ScreenWakeLockAPI/WakeLockSentinel.res +++ b/src/ScreenWakeLockAPI/WakeLockSentinel.res @@ -1,6 +1,7 @@ open EventAPI open ScreenWakeLockAPI +external asEventTarget: wakeLockSentinel => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/ServiceWorkerAPI/ServiceWorker.res b/src/ServiceWorkerAPI/ServiceWorker.res index 94740a7..cf317a5 100644 --- a/src/ServiceWorkerAPI/ServiceWorker.res +++ b/src/ServiceWorkerAPI/ServiceWorker.res @@ -3,6 +3,7 @@ open ServiceWorkerAPI open Prelude open ChannelMessagingAPI +external asEventTarget: serviceWorker => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/ServiceWorkerAPI/ServiceWorkerContainer.res b/src/ServiceWorkerAPI/ServiceWorkerContainer.res index 14dbd77..2e7efd5 100644 --- a/src/ServiceWorkerAPI/ServiceWorkerContainer.res +++ b/src/ServiceWorkerAPI/ServiceWorkerContainer.res @@ -1,6 +1,7 @@ open EventAPI open ServiceWorkerAPI +external asEventTarget: serviceWorkerContainer => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/ServiceWorkerAPI/ServiceWorkerRegistration.res b/src/ServiceWorkerAPI/ServiceWorkerRegistration.res index 9899124..11f0b35 100644 --- a/src/ServiceWorkerAPI/ServiceWorkerRegistration.res +++ b/src/ServiceWorkerAPI/ServiceWorkerRegistration.res @@ -2,6 +2,7 @@ open EventAPI open ServiceWorkerAPI open NotificationAPI +external asEventTarget: serviceWorkerRegistration => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/AnalyserNode.res b/src/WebAudioAPI/AnalyserNode.res index aa20f88..8de58db 100644 --- a/src/WebAudioAPI/AnalyserNode.res +++ b/src/WebAudioAPI/AnalyserNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: analyserOptions=?) => analyserNode = "AnalyserNode" +external asAudioNode: analyserNode => audioNode = "%identity" +external asEventTarget: analyserNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/AudioBufferSourceNode.res b/src/WebAudioAPI/AudioBufferSourceNode.res index 7e009b0..2c792e1 100644 --- a/src/WebAudioAPI/AudioBufferSourceNode.res +++ b/src/WebAudioAPI/AudioBufferSourceNode.res @@ -10,6 +10,9 @@ external make: ( ~options: audioBufferSourceOptions=?, ) => audioBufferSourceNode = "AudioBufferSourceNode" +external asAudioScheduledSourceNode: audioBufferSourceNode => audioScheduledSourceNode = "%identity" +external asAudioNode: audioBufferSourceNode => audioNode = "%identity" +external asEventTarget: audioBufferSourceNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/AudioContext.res b/src/WebAudioAPI/AudioContext.res index 18f3102..905b19b 100644 --- a/src/WebAudioAPI/AudioContext.res +++ b/src/WebAudioAPI/AudioContext.res @@ -9,6 +9,8 @@ open MediaCaptureAndStreamsAPI @new external make: (~contextOptions: audioContextOptions=?) => audioContext = "AudioContext" +external asBaseAudioContext: audioContext => baseAudioContext = "%identity" +external asEventTarget: audioContext => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/AudioNode.res b/src/WebAudioAPI/AudioNode.res index f0579a2..4646402 100644 --- a/src/WebAudioAPI/AudioNode.res +++ b/src/WebAudioAPI/AudioNode.res @@ -1,6 +1,7 @@ open EventAPI open WebAudioAPI +external asEventTarget: audioNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/AudioProcessingEvent.res b/src/WebAudioAPI/AudioProcessingEvent.res index 163c52d..7d1e17f 100644 --- a/src/WebAudioAPI/AudioProcessingEvent.res +++ b/src/WebAudioAPI/AudioProcessingEvent.res @@ -8,6 +8,7 @@ open WebAudioAPI external make: (~type_: string, ~eventInitDict: audioProcessingEventInit) => audioProcessingEvent = "AudioProcessingEvent" +external asEvent: audioProcessingEvent => event = "%identity" /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath) diff --git a/src/WebAudioAPI/AudioScheduledSourceNode.res b/src/WebAudioAPI/AudioScheduledSourceNode.res index 79814f7..5d164db 100644 --- a/src/WebAudioAPI/AudioScheduledSourceNode.res +++ b/src/WebAudioAPI/AudioScheduledSourceNode.res @@ -1,6 +1,8 @@ open EventAPI open WebAudioAPI +external asAudioNode: audioScheduledSourceNode => audioNode = "%identity" +external asEventTarget: audioScheduledSourceNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/AudioWorkletNode.res b/src/WebAudioAPI/AudioWorkletNode.res index f4a809a..7ae2754 100644 --- a/src/WebAudioAPI/AudioWorkletNode.res +++ b/src/WebAudioAPI/AudioWorkletNode.res @@ -11,6 +11,8 @@ external make: ( ~options: audioWorkletNodeOptions=?, ) => audioWorkletNode = "AudioWorkletNode" +external asAudioNode: audioWorkletNode => audioNode = "%identity" +external asEventTarget: audioWorkletNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/BaseAudioContext.res b/src/WebAudioAPI/BaseAudioContext.res index c0ca961..ea334a9 100644 --- a/src/WebAudioAPI/BaseAudioContext.res +++ b/src/WebAudioAPI/BaseAudioContext.res @@ -1,6 +1,7 @@ open EventAPI open WebAudioAPI +external asEventTarget: baseAudioContext => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/BiquadFilterNode.res b/src/WebAudioAPI/BiquadFilterNode.res index bed8388..7e26323 100644 --- a/src/WebAudioAPI/BiquadFilterNode.res +++ b/src/WebAudioAPI/BiquadFilterNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: biquadFilterOptions=?) => biquadFilterNode = "BiquadFilterNode" +external asAudioNode: biquadFilterNode => audioNode = "%identity" +external asEventTarget: biquadFilterNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/ChannelMergerNode.res b/src/WebAudioAPI/ChannelMergerNode.res index fcc64ee..9bf75b6 100644 --- a/src/WebAudioAPI/ChannelMergerNode.res +++ b/src/WebAudioAPI/ChannelMergerNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: channelMergerOptions=?) => channelMergerNode = "ChannelMergerNode" +external asAudioNode: channelMergerNode => audioNode = "%identity" +external asEventTarget: channelMergerNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/ChannelSplitterNode.res b/src/WebAudioAPI/ChannelSplitterNode.res index 3beaac0..fb5459a 100644 --- a/src/WebAudioAPI/ChannelSplitterNode.res +++ b/src/WebAudioAPI/ChannelSplitterNode.res @@ -10,6 +10,8 @@ external make: ( ~options: channelSplitterOptions=?, ) => channelSplitterNode = "ChannelSplitterNode" +external asAudioNode: channelSplitterNode => audioNode = "%identity" +external asEventTarget: channelSplitterNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/ConstantSourceNode.res b/src/WebAudioAPI/ConstantSourceNode.res index c3a79b7..4198909 100644 --- a/src/WebAudioAPI/ConstantSourceNode.res +++ b/src/WebAudioAPI/ConstantSourceNode.res @@ -10,6 +10,9 @@ external make: ( ~options: constantSourceOptions=?, ) => constantSourceNode = "ConstantSourceNode" +external asAudioScheduledSourceNode: constantSourceNode => audioScheduledSourceNode = "%identity" +external asAudioNode: constantSourceNode => audioNode = "%identity" +external asEventTarget: constantSourceNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/ConvolverNode.res b/src/WebAudioAPI/ConvolverNode.res index 7cf2b27..2416ade 100644 --- a/src/WebAudioAPI/ConvolverNode.res +++ b/src/WebAudioAPI/ConvolverNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: convolverOptions=?) => convolverNode = "ConvolverNode" +external asAudioNode: convolverNode => audioNode = "%identity" +external asEventTarget: convolverNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/DelayNode.res b/src/WebAudioAPI/DelayNode.res index d0e30a9..3dc2bc1 100644 --- a/src/WebAudioAPI/DelayNode.res +++ b/src/WebAudioAPI/DelayNode.res @@ -7,6 +7,8 @@ open WebAudioAPI @new external make: (~context: baseAudioContext, ~options: delayOptions=?) => delayNode = "DelayNode" +external asAudioNode: delayNode => audioNode = "%identity" +external asEventTarget: delayNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/DynamicsCompressorNode.res b/src/WebAudioAPI/DynamicsCompressorNode.res index 63375da..a2b1b67 100644 --- a/src/WebAudioAPI/DynamicsCompressorNode.res +++ b/src/WebAudioAPI/DynamicsCompressorNode.res @@ -10,6 +10,8 @@ external make: ( ~options: dynamicsCompressorOptions=?, ) => dynamicsCompressorNode = "DynamicsCompressorNode" +external asAudioNode: dynamicsCompressorNode => audioNode = "%identity" +external asEventTarget: dynamicsCompressorNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/GainNode.res b/src/WebAudioAPI/GainNode.res index 7575370..89a92e0 100644 --- a/src/WebAudioAPI/GainNode.res +++ b/src/WebAudioAPI/GainNode.res @@ -7,6 +7,8 @@ open WebAudioAPI @new external make: (~context: baseAudioContext, ~options: gainOptions=?) => gainNode = "GainNode" +external asAudioNode: gainNode => audioNode = "%identity" +external asEventTarget: gainNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/IIRFilterNode.res b/src/WebAudioAPI/IIRFilterNode.res index e3f8bd0..9e0f2e0 100644 --- a/src/WebAudioAPI/IIRFilterNode.res +++ b/src/WebAudioAPI/IIRFilterNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: iirFilterOptions) => iirFilterNode = "IIRFilterNode" +external asAudioNode: iirFilterNode => audioNode = "%identity" +external asEventTarget: iirFilterNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/MediaElementAudioSourceNode.res b/src/WebAudioAPI/MediaElementAudioSourceNode.res index 954e335..6bb59b2 100644 --- a/src/WebAudioAPI/MediaElementAudioSourceNode.res +++ b/src/WebAudioAPI/MediaElementAudioSourceNode.res @@ -10,6 +10,8 @@ external make: ( ~options: mediaElementAudioSourceOptions, ) => mediaElementAudioSourceNode = "MediaElementAudioSourceNode" +external asAudioNode: mediaElementAudioSourceNode => audioNode = "%identity" +external asEventTarget: mediaElementAudioSourceNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/MediaStreamAudioDestinationNode.res b/src/WebAudioAPI/MediaStreamAudioDestinationNode.res index d30aee8..7c8358e 100644 --- a/src/WebAudioAPI/MediaStreamAudioDestinationNode.res +++ b/src/WebAudioAPI/MediaStreamAudioDestinationNode.res @@ -10,6 +10,8 @@ external make: ( ~options: audioNodeOptions=?, ) => mediaStreamAudioDestinationNode = "MediaStreamAudioDestinationNode" +external asAudioNode: mediaStreamAudioDestinationNode => audioNode = "%identity" +external asEventTarget: mediaStreamAudioDestinationNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/MediaStreamAudioSourceNode.res b/src/WebAudioAPI/MediaStreamAudioSourceNode.res index a026f64..5163c17 100644 --- a/src/WebAudioAPI/MediaStreamAudioSourceNode.res +++ b/src/WebAudioAPI/MediaStreamAudioSourceNode.res @@ -10,6 +10,8 @@ external make: ( ~options: mediaStreamAudioSourceOptions, ) => mediaStreamAudioSourceNode = "MediaStreamAudioSourceNode" +external asAudioNode: mediaStreamAudioSourceNode => audioNode = "%identity" +external asEventTarget: mediaStreamAudioSourceNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/OfflineAudioCompletionEvent.res b/src/WebAudioAPI/OfflineAudioCompletionEvent.res index 066686e..3c98608 100644 --- a/src/WebAudioAPI/OfflineAudioCompletionEvent.res +++ b/src/WebAudioAPI/OfflineAudioCompletionEvent.res @@ -10,6 +10,7 @@ external make: ( ~eventInitDict: offlineAudioCompletionEventInit, ) => offlineAudioCompletionEvent = "OfflineAudioCompletionEvent" +external asEvent: offlineAudioCompletionEvent => event = "%identity" /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath) diff --git a/src/WebAudioAPI/OfflineAudioContext.res b/src/WebAudioAPI/OfflineAudioContext.res index 993a7d1..eddf90f 100644 --- a/src/WebAudioAPI/OfflineAudioContext.res +++ b/src/WebAudioAPI/OfflineAudioContext.res @@ -14,6 +14,8 @@ external make: offlineAudioContextOptions => offlineAudioContext = "OfflineAudio external make2: (~numberOfChannels: int, ~length: int, ~sampleRate: float) => offlineAudioContext = "OfflineAudioContext" +external asBaseAudioContext: offlineAudioContext => baseAudioContext = "%identity" +external asEventTarget: offlineAudioContext => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/OscillatorNode.res b/src/WebAudioAPI/OscillatorNode.res index cae7d37..ce98aa7 100644 --- a/src/WebAudioAPI/OscillatorNode.res +++ b/src/WebAudioAPI/OscillatorNode.res @@ -8,6 +8,9 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: oscillatorOptions=?) => oscillatorNode = "OscillatorNode" +external asAudioScheduledSourceNode: oscillatorNode => audioScheduledSourceNode = "%identity" +external asAudioNode: oscillatorNode => audioNode = "%identity" +external asEventTarget: oscillatorNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/PannerNode.res b/src/WebAudioAPI/PannerNode.res index 187efc8..c76e4be 100644 --- a/src/WebAudioAPI/PannerNode.res +++ b/src/WebAudioAPI/PannerNode.res @@ -7,6 +7,8 @@ open WebAudioAPI @new external make: (~context: baseAudioContext, ~options: pannerOptions=?) => pannerNode = "PannerNode" +external asAudioNode: pannerNode => audioNode = "%identity" +external asEventTarget: pannerNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/StereoPannerNode.res b/src/WebAudioAPI/StereoPannerNode.res index 7469773..4298521 100644 --- a/src/WebAudioAPI/StereoPannerNode.res +++ b/src/WebAudioAPI/StereoPannerNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: stereoPannerOptions=?) => stereoPannerNode = "StereoPannerNode" +external asAudioNode: stereoPannerNode => audioNode = "%identity" +external asEventTarget: stereoPannerNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebAudioAPI/WaveShaperNode.res b/src/WebAudioAPI/WaveShaperNode.res index 5bc458a..1c14acb 100644 --- a/src/WebAudioAPI/WaveShaperNode.res +++ b/src/WebAudioAPI/WaveShaperNode.res @@ -8,6 +8,8 @@ open WebAudioAPI external make: (~context: baseAudioContext, ~options: waveShaperOptions=?) => waveShaperNode = "WaveShaperNode" +external asAudioNode: waveShaperNode => audioNode = "%identity" +external asEventTarget: waveShaperNode => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebSocketsAPI/CloseEvent.res b/src/WebSocketsAPI/CloseEvent.res index 3c02637..78df9cb 100644 --- a/src/WebSocketsAPI/CloseEvent.res +++ b/src/WebSocketsAPI/CloseEvent.res @@ -7,6 +7,7 @@ open WebSocketsAPI @new external make: (~type_: string, ~eventInitDict: closeEventInit=?) => closeEvent = "CloseEvent" +external asEvent: closeEvent => event = "%identity" /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath) diff --git a/src/WebSocketsAPI/MessageEvent.res b/src/WebSocketsAPI/MessageEvent.res index 9849bc2..9922864 100644 --- a/src/WebSocketsAPI/MessageEvent.res +++ b/src/WebSocketsAPI/MessageEvent.res @@ -8,6 +8,7 @@ open WebSocketsAPI external make: (~type_: string, ~eventInitDict: messageEventInit<'t>=?) => messageEvent<'t> = "MessageEvent" +external asEvent: messageEvent<'t> => event = "%identity" /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath) diff --git a/src/WebSocketsAPI/WebSocket.res b/src/WebSocketsAPI/WebSocket.res index 52d8ffd..6d9c6e9 100644 --- a/src/WebSocketsAPI/WebSocket.res +++ b/src/WebSocketsAPI/WebSocket.res @@ -14,6 +14,7 @@ external make: (~url: string, ~protocols: string=?) => webSocket = "WebSocket" @new external make2: (~url: string, ~protocols: array=?) => webSocket = "WebSocket" +external asEventTarget: webSocket => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebSpeechAPI/SpeechSynthesis.res b/src/WebSpeechAPI/SpeechSynthesis.res index d66d24d..90232d2 100644 --- a/src/WebSpeechAPI/SpeechSynthesis.res +++ b/src/WebSpeechAPI/SpeechSynthesis.res @@ -1,6 +1,7 @@ open EventAPI open WebSpeechAPI +external asEventTarget: speechSynthesis => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebSpeechAPI/SpeechSynthesisUtterance.res b/src/WebSpeechAPI/SpeechSynthesisUtterance.res index fb8e0c4..d37f615 100644 --- a/src/WebSpeechAPI/SpeechSynthesisUtterance.res +++ b/src/WebSpeechAPI/SpeechSynthesisUtterance.res @@ -7,6 +7,7 @@ open WebSpeechAPI @new external make: (~text: string=?) => speechSynthesisUtterance = "SpeechSynthesisUtterance" +external asEventTarget: speechSynthesisUtterance => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/src/WebStorageAPI/StorageEvent.res b/src/WebStorageAPI/StorageEvent.res index dbdfcad..8c697ed 100644 --- a/src/WebStorageAPI/StorageEvent.res +++ b/src/WebStorageAPI/StorageEvent.res @@ -7,6 +7,7 @@ open WebStorageAPI @new external make: (~type_: string, ~eventInitDict: storageEventInit=?) => storageEvent = "StorageEvent" +external asEvent: storageEvent => event = "%identity" /** Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath) diff --git a/src/WebVTTAPI/TextTrack.res b/src/WebVTTAPI/TextTrack.res index 16e5a7f..f6dad2e 100644 --- a/src/WebVTTAPI/TextTrack.res +++ b/src/WebVTTAPI/TextTrack.res @@ -1,6 +1,7 @@ open EventAPI open WebVTTAPI +external asEventTarget: textTrack => eventTarget = "%identity" /** Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. diff --git a/tools/TypeScript-DOM-lib-generator/src/build/emitter.ts b/tools/TypeScript-DOM-lib-generator/src/build/emitter.ts index 2525d54..1a86760 100644 --- a/tools/TypeScript-DOM-lib-generator/src/build/emitter.ts +++ b/tools/TypeScript-DOM-lib-generator/src/build/emitter.ts @@ -1318,6 +1318,29 @@ export async function emitRescriptBindings(webidl: Browser.WebIdl) { return i.name && i.name.startsWith("HTML") && i.name.endsWith("Element"); } + function emitCastToBaseInterfaceMethods( + initialInterface: Browser.Interface, + currentInterface: Browser.Interface, + ) { + if ( + !currentInterface.extends || + typeof currentInterface.extends !== "string" + ) + return; + + const baseInterface = allInterfaces.find( + (j) => j.name === currentInterface.extends, + ); + if (!baseInterface) return; + + printer.printLine( + `external as${baseInterface.name}: ${mapInterfaceName(initialInterface)} => ${mapInterfaceName( + baseInterface, + )} = "%identity"`, + ); + emitCastToBaseInterfaceMethods(initialInterface, baseInterface); + } + // TODO: add constructor fn and cast fn // TODO: include methods of "implements" mixins @@ -1344,6 +1367,8 @@ export async function emitRescriptBindings(webidl: Browser.WebIdl) { } } + emitCastToBaseInterfaceMethods(i, i); + let methodEntries: MethodWithSource[] = extractMethodEntries(i); const seen = new Set(); @@ -1765,6 +1790,13 @@ export async function emitRescriptBindings(webidl: Browser.WebIdl) { name: "Prelude", entries: [ byHand("any", () => printer.printLine("type any = {}")), + byHand("unsafeConversion", () => { + printer.endLine(); + printer.printLine( + `external unsafeConversation: 'tinput => 'toutput = "%identity"`, + ); + printer.endLine(); + }), byHand("BufferSource", emitAny("BufferSource")), byHand("BodyInit", emitAny("BodyInit")), // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer