From 3d9f1333c74be30379d108b229e7028e454d4983 Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Wed, 26 Jul 2023 14:06:55 +0900 Subject: [PATCH 1/9] Update FormData.scala --- .../main/scala/org/scalajs/dom/FormData.scala | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/dom/src/main/scala/org/scalajs/dom/FormData.scala b/dom/src/main/scala/org/scalajs/dom/FormData.scala index 6e0735561..b5e40b396 100644 --- a/dom/src/main/scala/org/scalajs/dom/FormData.scala +++ b/dom/src/main/scala/org/scalajs/dom/FormData.scala @@ -8,6 +8,7 @@ package org.scalajs.dom import scala.scalajs.js import scala.scalajs.js.annotation._ +import scala.scalajs.js.| /** XMLHttpRequest Level 2 adds support for the new FormData interface. FormData objects provide a way to easily * construct a set of key/value pairs representing form fields and their values, which can then be easily sent using @@ -15,10 +16,40 @@ import scala.scalajs.js.annotation._ */ @js.native @JSGlobal -class FormData(form: HTMLFormElement = js.native) extends js.Object { +class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String]] { /** Appends a key/value pair to the FormData object. */ def append(name: js.Any, value: js.Any, blobName: String = js.native): Unit = js.native + + /** Deletes a key/value pair from the FormData object. */ + def delete(name: String): Unit = js.native + + /** Returns the first value associated with a given key from within a FormData object. */ + def get(name: String): String | Blob = js.native + + /** Returns whether a FormData object contains a certain key. */ + def has(name: String): Boolean = js.native + + /** Sets a new value for an existing key inside a FormData object, or adds the key/value if it does not already exist. + */ + def set( + name: String, value: String | Blob, blobName: String = js.native + ): Unit = js.native + + @JSName(js.Symbol.iterator) + override def jsIterator(): js.Iterator[js.Tuple2[String, String]] = js.native + + /** Returns an iterator that iterates through all key/value pairs contained in the FormData. */ + def entries(): js.Iterator[js.Tuple2[String, String | Blob]] = js.native + + /** Returns an array of all the values associated with a given key from within a FormData. */ + def getAll(name: String): js.Array[String | Blob] = js.native + + /** Returns an iterator iterates through all keys of the key/value pairs contained in the FormData. */ + def keys(): js.Iterator[String] = js.native + + /** Returns an iterator that iterates through all values contained in the FormData. */ + def values(): js.Iterator[String | Blob] = js.native } @js.native From 1f3526c8eda5b08ee3b86734a936ec19a4182fdb Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Wed, 26 Jul 2023 14:13:25 +0900 Subject: [PATCH 2/9] Update api-reports --- api-reports/2_12.txt | 9 +++++++++ api-reports/2_13.txt | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index e57d886a6..ab3fb09fe 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -2292,6 +2292,15 @@ FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] FormData[JC] def append(name: js.Any, value: js.Any, blobName: String?): Unit +FormData[JC] def delete(name: String): Unit +FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] +FormData[JC] def get(name: String): String | Blob +FormData[JC] def getAll(name: String): js.Array[String | Blob] +FormData[JC] def has(name: String): Boolean +FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] +FormData[JC] def keys(): js.Iterator[String] +FormData[JC] def set(name: String, value: String | Blob, blobName: String?): Unit +FormData[JC] def values(): js.Iterator[String | Blob] FormData[JO] FrameType[JT] FrameType[SO] val auxiliary: FrameType diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index e57d886a6..ab3fb09fe 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -2292,6 +2292,15 @@ FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] FormData[JC] def append(name: js.Any, value: js.Any, blobName: String?): Unit +FormData[JC] def delete(name: String): Unit +FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] +FormData[JC] def get(name: String): String | Blob +FormData[JC] def getAll(name: String): js.Array[String | Blob] +FormData[JC] def has(name: String): Boolean +FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] +FormData[JC] def keys(): js.Iterator[String] +FormData[JC] def set(name: String, value: String | Blob, blobName: String?): Unit +FormData[JC] def values(): js.Iterator[String | Blob] FormData[JO] FrameType[JT] FrameType[SO] val auxiliary: FrameType From 31c026c697314ea8bbc2f84df933bcfb37b1349c Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Wed, 26 Jul 2023 17:37:15 +0900 Subject: [PATCH 3/9] Update FormData.scala - using function overloading --- dom/src/main/scala/org/scalajs/dom/FormData.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dom/src/main/scala/org/scalajs/dom/FormData.scala b/dom/src/main/scala/org/scalajs/dom/FormData.scala index b5e40b396..6ebf1e7ff 100644 --- a/dom/src/main/scala/org/scalajs/dom/FormData.scala +++ b/dom/src/main/scala/org/scalajs/dom/FormData.scala @@ -19,7 +19,9 @@ import scala.scalajs.js.| class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String]] { /** Appends a key/value pair to the FormData object. */ - def append(name: js.Any, value: js.Any, blobName: String = js.native): Unit = js.native + def append(name: js.Any, value: String): Unit = js.native + + def append(name: js.Any, value: Blob, blobName: String): Unit = js.native /** Deletes a key/value pair from the FormData object. */ def delete(name: String): Unit = js.native @@ -33,7 +35,11 @@ class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[ /** Sets a new value for an existing key inside a FormData object, or adds the key/value if it does not already exist. */ def set( - name: String, value: String | Blob, blobName: String = js.native + name: String, value: String + ): Unit = js.native + + def set( + name: String, value: Blob, blobName: String ): Unit = js.native @JSName(js.Symbol.iterator) From 3fc37fe83ec708e57edbfabdacd67aa7ccd1a579 Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Wed, 26 Jul 2023 17:44:34 +0900 Subject: [PATCH 4/9] Update api-reports --- api-reports/2_12.txt | 6 ++++-- api-reports/2_13.txt | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index ab3fb09fe..ea918ad22 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -2291,7 +2291,8 @@ FocusEventInit[JT] var scoped: js.UndefOr[Boolean] FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] -FormData[JC] def append(name: js.Any, value: js.Any, blobName: String?): Unit +FormData[JC] def append(name: js.Any, value: Blob, blobName: String): Unit +FormData[JC] def append(name: js.Any, value: String): Unit FormData[JC] def delete(name: String): Unit FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def get(name: String): String | Blob @@ -2299,7 +2300,8 @@ FormData[JC] def getAll(name: String): js.Array[String | Blob] FormData[JC] def has(name: String): Boolean FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] FormData[JC] def keys(): js.Iterator[String] -FormData[JC] def set(name: String, value: String | Blob, blobName: String?): Unit +FormData[JC] def set(name: String, value: Blob, blobName: String): Unit +FormData[JC] def set(name: String, value: String): Unit FormData[JC] def values(): js.Iterator[String | Blob] FormData[JO] FrameType[JT] diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index ab3fb09fe..ea918ad22 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -2291,7 +2291,8 @@ FocusEventInit[JT] var scoped: js.UndefOr[Boolean] FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] -FormData[JC] def append(name: js.Any, value: js.Any, blobName: String?): Unit +FormData[JC] def append(name: js.Any, value: Blob, blobName: String): Unit +FormData[JC] def append(name: js.Any, value: String): Unit FormData[JC] def delete(name: String): Unit FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def get(name: String): String | Blob @@ -2299,7 +2300,8 @@ FormData[JC] def getAll(name: String): js.Array[String | Blob] FormData[JC] def has(name: String): Boolean FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] FormData[JC] def keys(): js.Iterator[String] -FormData[JC] def set(name: String, value: String | Blob, blobName: String?): Unit +FormData[JC] def set(name: String, value: Blob, blobName: String): Unit +FormData[JC] def set(name: String, value: String): Unit FormData[JC] def values(): js.Iterator[String | Blob] FormData[JO] FrameType[JT] From 8989d97ef8016025054f5c5d8cb6afc8853e538f Mon Sep 17 00:00:00 2001 From: zetashift Date: Wed, 26 Jul 2023 20:53:14 +0200 Subject: [PATCH 5/9] Add MDN documentation strings for FormData --- .../main/scala/org/scalajs/dom/FormData.scala | 76 ++++++++++++++++--- 1 file changed, 67 insertions(+), 9 deletions(-) diff --git a/dom/src/main/scala/org/scalajs/dom/FormData.scala b/dom/src/main/scala/org/scalajs/dom/FormData.scala index 6ebf1e7ff..be89204a6 100644 --- a/dom/src/main/scala/org/scalajs/dom/FormData.scala +++ b/dom/src/main/scala/org/scalajs/dom/FormData.scala @@ -18,26 +18,76 @@ import scala.scalajs.js.| @JSGlobal class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String]] { - /** Appends a key/value pair to the FormData object. */ + /** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` + * object, or adds the key if it does not already exist. + * + * @param name + * The name of the field whose data is contained in value. + * @param value + * The field's value. This can be a string or `Blob` (including subclasses such as File). If none of these are + * specified the value is converted to a string. + */ def append(name: js.Any, value: String): Unit = js.native + /** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` + * object, or adds the key if it does not already exist. + * + * @param name + * The name of the field whose data is contained in value. + * @param value + * The field's value. This can be a string or `Blob` (including subclasses such as File). If none of these are + * specified the value is converted to a string. + * @param blobName + * The filename reported to the server (a string), when a `Blob` or `File` is passed as the second parameter. The + * default filename for `Blob` objects is "blob". The default filename for `File` objects is the file's filename. + */ def append(name: js.Any, value: Blob, blobName: String): Unit = js.native - /** Deletes a key/value pair from the FormData object. */ + /** The `delete()` method of the `FormData` interface deletes a key and its value(s) from a `FormData` object. + * @param name + * The name of the key you want to delete. + */ def delete(name: String): Unit = js.native - /** Returns the first value associated with a given key from within a FormData object. */ + /** The `get()` method of the `FormData` interface returns the first value associated with a given key from within a + * `FormData` object. If you expect multiple values and want all of them, use the `getAll()` method instead. + * + * @param name + * A string representing the name of the key you want to retrieve. + * @return + * A value whose key matches the specified name. Otherwise, `null`. + */ def get(name: String): String | Blob = js.native - /** Returns whether a FormData object contains a certain key. */ + /** The `has()` method of the `FormData` interface returns whether a `FormData` object contains a certain key. + * + * @param name + * A string representing the name of the key you want to test for. + * @return + * `true` if a key of `FormData` matches the specified name. Otherwise, `false`. + */ def has(name: String): Boolean = js.native - /** Sets a new value for an existing key inside a FormData object, or adds the key/value if it does not already exist. + /** The `set()` method of the `FormData` interface sets a new value for an existing key inside a `FormData` object, or + * adds the key/value if it does not already exist. + * + * @param name + * The name of the field whose data is contained in value. + * @param value + * The field's value. */ def set( name: String, value: String ): Unit = js.native + /** The `set()` method of the `FormData` interface sets a new value for an existing key inside a `FormData` object, or + * adds the key/value if it does not already exist. + * + * @param name + * The name of the field whose data is contained in value. + * @param value + * The field's value. + */ def set( name: String, value: Blob, blobName: String ): Unit = js.native @@ -45,16 +95,24 @@ class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[ @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] = js.native - /** Returns an iterator that iterates through all key/value pairs contained in the FormData. */ + /** The `FormData.entries()` method returns an iterator which iterates through all key/value pairs contained in the + * `FormData`. The key of each pair is a string object, and the value is either a string or a `Blob`. + */ def entries(): js.Iterator[js.Tuple2[String, String | Blob]] = js.native - /** Returns an array of all the values associated with a given key from within a FormData. */ + /** The `getAll()` method of the `FormData` interface returns all the values associated with a given key from within a + * `FormData` object. + */ def getAll(name: String): js.Array[String | Blob] = js.native - /** Returns an iterator iterates through all keys of the key/value pairs contained in the FormData. */ + /** The `FormData.keys()` method returns an iterator which iterates through all keys contained in the `FormData`. The + * keys are strings. + */ def keys(): js.Iterator[String] = js.native - /** Returns an iterator that iterates through all values contained in the FormData. */ + /** The `FormData.values()` method returns an iterator which iterates through all values contained in the `FormData`. + * The values are strings or `Blob` objects. + */ def values(): js.Iterator[String | Blob] = js.native } From 862b43eddd01dbbfdd7713dca0e646909347e9b0 Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Fri, 28 Jul 2023 00:54:23 +0900 Subject: [PATCH 6/9] Update FormData.scala --- dom/src/main/scala/org/scalajs/dom/FormData.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dom/src/main/scala/org/scalajs/dom/FormData.scala b/dom/src/main/scala/org/scalajs/dom/FormData.scala index be89204a6..c4005a2de 100644 --- a/dom/src/main/scala/org/scalajs/dom/FormData.scala +++ b/dom/src/main/scala/org/scalajs/dom/FormData.scala @@ -27,7 +27,7 @@ class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[ * The field's value. This can be a string or `Blob` (including subclasses such as File). If none of these are * specified the value is converted to a string. */ - def append(name: js.Any, value: String): Unit = js.native + def append(name: String, value: String): Unit = js.native /** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` * object, or adds the key if it does not already exist. @@ -41,7 +41,7 @@ class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[ * The filename reported to the server (a string), when a `Blob` or `File` is passed as the second parameter. The * default filename for `Blob` objects is "blob". The default filename for `File` objects is the file's filename. */ - def append(name: js.Any, value: Blob, blobName: String): Unit = js.native + def append(name: String, value: Blob, blobName: String): Unit = js.native /** The `delete()` method of the `FormData` interface deletes a key and its value(s) from a `FormData` object. * @param name From 30cbe410296cd2ae558283f42d7a5a4432fecf2f Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Fri, 28 Jul 2023 00:55:03 +0900 Subject: [PATCH 7/9] Update api-reports --- api-reports/2_12.txt | 4 ++-- api-reports/2_13.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index ea918ad22..d7b932b27 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -2291,8 +2291,8 @@ FocusEventInit[JT] var scoped: js.UndefOr[Boolean] FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] -FormData[JC] def append(name: js.Any, value: Blob, blobName: String): Unit -FormData[JC] def append(name: js.Any, value: String): Unit +FormData[JC] def append(name: String, value: Blob, blobName: String): Unit +FormData[JC] def append(name: String, value: String): Unit FormData[JC] def delete(name: String): Unit FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def get(name: String): String | Blob diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index ea918ad22..d7b932b27 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -2291,8 +2291,8 @@ FocusEventInit[JT] var scoped: js.UndefOr[Boolean] FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] -FormData[JC] def append(name: js.Any, value: Blob, blobName: String): Unit -FormData[JC] def append(name: js.Any, value: String): Unit +FormData[JC] def append(name: String, value: Blob, blobName: String): Unit +FormData[JC] def append(name: String, value: String): Unit FormData[JC] def delete(name: String): Unit FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def get(name: String): String | Blob From aa5a8985338d44ac5fbaf85796e4bdebfe85299f Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Tue, 1 Aug 2023 23:14:21 +0900 Subject: [PATCH 8/9] Update FormData.scala --- api-reports/2_12.txt | 6 +++--- api-reports/2_13.txt | 6 +++--- dom/src/main/scala/org/scalajs/dom/FormData.scala | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index d7b932b27..2b1199232 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -2291,16 +2291,16 @@ FocusEventInit[JT] var scoped: js.UndefOr[Boolean] FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] -FormData[JC] def append(name: String, value: Blob, blobName: String): Unit +FormData[JC] def append(name: String, value: Blob, blobName: String?): Unit FormData[JC] def append(name: String, value: String): Unit FormData[JC] def delete(name: String): Unit FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def get(name: String): String | Blob FormData[JC] def getAll(name: String): js.Array[String | Blob] FormData[JC] def has(name: String): Boolean -FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] +FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def keys(): js.Iterator[String] -FormData[JC] def set(name: String, value: Blob, blobName: String): Unit +FormData[JC] def set(name: String, value: Blob, blobName: String?): Unit FormData[JC] def set(name: String, value: String): Unit FormData[JC] def values(): js.Iterator[String | Blob] FormData[JO] diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index d7b932b27..2b1199232 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -2291,16 +2291,16 @@ FocusEventInit[JT] var scoped: js.UndefOr[Boolean] FocusEventInit[JT] var view: js.UndefOr[Window] FocusOptions[JT] var focusVisible: js.UndefOr[Boolean] FocusOptions[JT] var preventScroll: js.UndefOr[Boolean] -FormData[JC] def append(name: String, value: Blob, blobName: String): Unit +FormData[JC] def append(name: String, value: Blob, blobName: String?): Unit FormData[JC] def append(name: String, value: String): Unit FormData[JC] def delete(name: String): Unit FormData[JC] def entries(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def get(name: String): String | Blob FormData[JC] def getAll(name: String): js.Array[String | Blob] FormData[JC] def has(name: String): Boolean -FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String]] +FormData[JC] @JSName(js.Symbol.iterator) override def jsIterator(): js.Iterator[js.Tuple2[String, String | Blob]] FormData[JC] def keys(): js.Iterator[String] -FormData[JC] def set(name: String, value: Blob, blobName: String): Unit +FormData[JC] def set(name: String, value: Blob, blobName: String?): Unit FormData[JC] def set(name: String, value: String): Unit FormData[JC] def values(): js.Iterator[String | Blob] FormData[JO] diff --git a/dom/src/main/scala/org/scalajs/dom/FormData.scala b/dom/src/main/scala/org/scalajs/dom/FormData.scala index c4005a2de..8afebbec3 100644 --- a/dom/src/main/scala/org/scalajs/dom/FormData.scala +++ b/dom/src/main/scala/org/scalajs/dom/FormData.scala @@ -16,7 +16,7 @@ import scala.scalajs.js.| */ @js.native @JSGlobal -class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String]] { +class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String | Blob]] { /** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` * object, or adds the key if it does not already exist. @@ -41,7 +41,7 @@ class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[ * The filename reported to the server (a string), when a `Blob` or `File` is passed as the second parameter. The * default filename for `Blob` objects is "blob". The default filename for `File` objects is the file's filename. */ - def append(name: String, value: Blob, blobName: String): Unit = js.native + def append(name: String, value: Blob, blobName: String = js.native): Unit = js.native /** The `delete()` method of the `FormData` interface deletes a key and its value(s) from a `FormData` object. * @param name @@ -89,11 +89,11 @@ class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[ * The field's value. */ def set( - name: String, value: Blob, blobName: String + name: String, value: Blob, blobName: String = js.native ): Unit = js.native @JSName(js.Symbol.iterator) - override def jsIterator(): js.Iterator[js.Tuple2[String, String]] = js.native + override def jsIterator(): js.Iterator[js.Tuple2[String, String | Blob]] = js.native /** The `FormData.entries()` method returns an iterator which iterates through all key/value pairs contained in the * `FormData`. The key of each pair is a string object, and the value is either a string or a `Blob`. From 1582e48f9b230da1cd8d0318207498cdfc3f0cad Mon Sep 17 00:00:00 2001 From: G-yhlee Date: Tue, 1 Aug 2023 23:38:54 +0900 Subject: [PATCH 9/9] Update FormData with add constructor --- dom/src/main/scala/org/scalajs/dom/FormData.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dom/src/main/scala/org/scalajs/dom/FormData.scala b/dom/src/main/scala/org/scalajs/dom/FormData.scala index 8afebbec3..fe73f6633 100644 --- a/dom/src/main/scala/org/scalajs/dom/FormData.scala +++ b/dom/src/main/scala/org/scalajs/dom/FormData.scala @@ -16,7 +16,11 @@ import scala.scalajs.js.| */ @js.native @JSGlobal -class FormData(form: HTMLFormElement = js.native) extends js.Iterable[js.Tuple2[String, String | Blob]] { +class FormData extends js.Iterable[js.Tuple2[String, String | Blob]] { + + def this(form: HTMLFormElement) = this() + + def this(form: HTMLFormElement, submitter: HTMLElement) = this() /** The `append()` method of the `FormData` interface appends a new value onto an existing key inside a `FormData` * object, or adds the key if it does not already exist.