Skip to content

Commit 96a96e9

Browse files
author
exoego
committed
Add searchParams
1 parent 32d32d6 commit 96a96e9

File tree

1 file changed

+55
-0
lines changed
  • src/main/scala/org/scalajs/dom/experimental

1 file changed

+55
-0
lines changed

src/main/scala/org/scalajs/dom/experimental/URL.scala

+55
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,59 @@ class URL(url: String, base: String = js.native) extends js.Object {
9292
* MDN
9393
*/
9494
var hash: String = js.native
95+
96+
var searchParams: URLSearchParams = js.native
97+
}
98+
99+
/**
100+
* The URLSearchParams defines utility methods to work with the query string of a URL.
101+
*
102+
* An object implementing URLSearchParams can directly be used in a for...of structure, for example the following two lines are equivalent:
103+
*
104+
* MDN
105+
*/
106+
@js.native
107+
trait URLSearchParamsInterface extends js.Object {
108+
def append(name: String, value: String): Unit
109+
def delete(name: String): Unit
110+
def get(name: String): js.UndefOr[String]
111+
def getAll(name: String): js.Array[String]
112+
def has(name: String): Boolean
113+
def set(name: String, value: String): Unit
114+
def sort(): Unit
115+
116+
@JSName(js.Symbol.iterator)
117+
def entries(): js.Iterator[js.Tuple2[String, String]] = js.native
118+
119+
@JSName(js.Symbol.iterator)
120+
def values(): js.Iterator[String] = js.native
121+
122+
def forEach(callback: js.Function2[String, String, Unit]): Unit = js.native
123+
}
124+
125+
/**
126+
* The URLSearchParams() constructor creates and returns a new URLSearchParams object. Leading '?' characters are ignored.
127+
*
128+
* MDN
129+
*/
130+
@js.native
131+
@JSGlobal
132+
class URLSearchParams extends URLSearchParamsInterface {
133+
def this(init: String) = this()
134+
def this(init: js.Array[String]) = this()
135+
def this(init: js.Dictionary[String]) = this()
136+
137+
override def append(name: String, value: String): Unit = js.native
138+
139+
override def delete(name: String): Unit = js.native
140+
141+
override def get(name: String): js.UndefOr[String] = js.native
142+
143+
override def getAll(name: String): Sequence[String] = js.native
144+
145+
override def has(name: String): Boolean = js.native
146+
147+
override def set(name: String, value: String): Unit = js.native
148+
149+
override def sort(): Unit = js.native
95150
}

0 commit comments

Comments
 (0)