From 2c1cc69bdf68b4e5d885e2dab8ab82737f9f70c4 Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 3 Jul 2025 08:13:44 +0200 Subject: [PATCH 1/2] Fix getAttribute return type --- src/DOMAPI/Element.res | 2 +- tests/DOMAPI/Element__test.js | 12 ++++++++++++ tests/DOMAPI/Element__test.res | 6 ++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 tests/DOMAPI/Element__test.js create mode 100644 tests/DOMAPI/Element__test.res diff --git a/src/DOMAPI/Element.res b/src/DOMAPI/Element.res index ca92be5..13b665b 100644 --- a/src/DOMAPI/Element.res +++ b/src/DOMAPI/Element.res @@ -115,7 +115,7 @@ Returns element's first attribute whose qualified name is qualifiedName, and nul [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Element/getAttribute) */ @send - external getAttribute: (T.t, string) => string = "getAttribute" + external getAttribute: (T.t, string) => null = "getAttribute" /** Returns the qualified names of all element's attributes. Can contain duplicates. diff --git a/tests/DOMAPI/Element__test.js b/tests/DOMAPI/Element__test.js new file mode 100644 index 0000000..61808ec --- /dev/null +++ b/tests/DOMAPI/Element__test.js @@ -0,0 +1,12 @@ +// Generated by ReScript, PLEASE EDIT WITH CARE + + +let value = myElement.getAttribute("foo"); + +if (value === null) { + console.log("nothing"); +} else { + console.log(value); +} + +/* value Not a pure module */ diff --git a/tests/DOMAPI/Element__test.res b/tests/DOMAPI/Element__test.res new file mode 100644 index 0000000..bda96cb --- /dev/null +++ b/tests/DOMAPI/Element__test.res @@ -0,0 +1,6 @@ +external myElement: DOMAPI.element = "myElement" + +switch (myElement->Element.getAttribute("foo")) { +| Null.Value(value) => value->Console.log +| Null => "nothing"->Console.log +} \ No newline at end of file From df58e03a5c2faeff2b4fac81b26a7e40f2ca545b Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 3 Jul 2025 08:14:41 +0200 Subject: [PATCH 2/2] Format test file --- tests/DOMAPI/Element__test.res | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/DOMAPI/Element__test.res b/tests/DOMAPI/Element__test.res index bda96cb..9a766fb 100644 --- a/tests/DOMAPI/Element__test.res +++ b/tests/DOMAPI/Element__test.res @@ -1,6 +1,6 @@ external myElement: DOMAPI.element = "myElement" -switch (myElement->Element.getAttribute("foo")) { +switch myElement->Element.getAttribute("foo") { | Null.Value(value) => value->Console.log | Null => "nothing"->Console.log -} \ No newline at end of file +}