Skip to content

Commit b339115

Browse files
committed
Move all the fetch-related APIs to dom.*.
1 parent d7933f9 commit b339115

File tree

14 files changed

+732
-488
lines changed

14 files changed

+732
-488
lines changed

api-reports/2_12.txt

Lines changed: 243 additions & 194 deletions
Large diffs are not rendered by default.

api-reports/2_13.txt

Lines changed: 243 additions & 194 deletions
Large diffs are not rendered by default.

src/main/scala/org/scalajs/dom/experimental/AbortController.scala renamed to src/main/scala/org/scalajs/dom/AbortController.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package org.scalajs.dom.experimental
1+
package org.scalajs.dom
22

3-
import org.scalajs.dom.EventTarget
43
import scala.scalajs.js
54
import scala.scalajs.js.annotation.JSGlobal
65

src/main/scala/org/scalajs/dom/experimental/Fetch.scala renamed to src/main/scala/org/scalajs/dom/Fetch.scala

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package org.scalajs.dom.experimental
1+
package org.scalajs.dom
22

3-
import org.scalajs.dom.{Blob, FormData}
43
import scala.scalajs.js
54
import scala.scalajs.js.annotation._
65
import scala.scalajs.js.typedarray.{ArrayBuffer, Uint8Array}
@@ -182,17 +181,6 @@ trait ResponseInit extends js.Object {
182181
var headers: HeadersInit
183182
}
184183

185-
object ResponseInit {
186-
def apply(_status: Int = 200, _statusText: ByteString = "OK",
187-
_headers: HeadersInit = js.Dictionary[String]()): ResponseInit = {
188-
new ResponseInit {
189-
var status = _status
190-
var statusText = _statusText
191-
var headers = _headers
192-
}
193-
}
194-
}
195-
196184
/**
197185
* See [[https://fetch.spec.whatwg.org/#body body interface]] in whatwg Fetch spec.
198186
*

src/main/scala/org/scalajs/dom/experimental/Stream.scala renamed to src/main/scala/org/scalajs/dom/Stream.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.scalajs.dom.experimental
1+
package org.scalajs.dom
22

33
import scala.scalajs.js
44
import scala.scalajs.js.annotation._

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

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,38 @@
1-
package org.scalajs.dom.experimental
1+
package org.scalajs.dom
22

33
import scala.scalajs.js
44
import scala.scalajs.js.annotation._
55

6+
/**
7+
* The URL object provides static methods used for creating object URLs.
8+
*
9+
* MDN
10+
*/
11+
@js.native
12+
@JSGlobal
13+
object URL extends js.Object {
14+
15+
/**
16+
* The URL.revokeObjectURL() static method releases an existing object URL which
17+
* was previously created by calling window.URL.createObjectURL().  Call this
18+
* method when you've finished using a object URL, in order to let the browser know it
19+
* doesn't need to keep the reference to the file any longer.
20+
*
21+
* MDN
22+
*/
23+
def revokeObjectURL(url: String): Unit = js.native
24+
25+
/**
26+
* The URL.createObjectURL() static method creates a DOMString containing an URL
27+
* representing the object given in parameter. The URL lifetime is tied to the
28+
* document in the window on which it was created. The new object URL represents the
29+
* specified File object or Blob object.
30+
*
31+
* MDN
32+
*/
33+
def createObjectURL(blob: Blob): String = js.native
34+
}
35+
636
/**
737
* The URL() constructor returns a newly created URL object representing the URL
838
* defined by the parameters.

src/main/scala/org/scalajs/dom/WindowOrWorkerGlobalScope.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.scalajs.dom
22

33
import org.scalajs.dom.experimental.cachestorage.CacheStorage
4-
import org.scalajs.dom.experimental.{RequestInfo, RequestInit, Response}
54
import scala.scalajs.js
65
import scala.scalajs.js.|
76

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.scalajs.dom.experimental
22

3+
import org.scalajs.dom
34
import org.scalajs.dom.Blob
45
import scala.scalajs.js
56
import scala.scalajs.js.annotation._
@@ -34,7 +35,7 @@ class FileReaderSync() extends js.Object {
3435
*
3536
* MDN
3637
*/
37-
def readAsDataURL(blob: Blob): URL = js.native
38+
def readAsDataURL(blob: Blob): dom.URL = js.native
3839

3940
/**
4041
* The readAsText method is used to read the contents of the specified Blob or File.

src/main/scala/org/scalajs/dom/experimental/beacon/package.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.scalajs.dom.experimental
22

3+
import org.scalajs.dom
34
import org.scalajs.dom.{Navigator, WorkerNavigator}
45
import scala.language.implicitConversions
56
import scala.scalajs.js
@@ -40,7 +41,7 @@ package object beacon {
4041
* @param data The data parameter is the ArrayBufferView, Blob, DOMString,
4142
* or FormData data that is to be transmitted.
4243
*/
43-
def sendBeacon(url: String, data: BodyInit = null): Boolean = js.native
44+
def sendBeacon(url: String, data: dom.BodyInit = null): Boolean = js.native
4445
}
4546

4647
@js.native
@@ -57,6 +58,6 @@ package object beacon {
5758
* @param data The data parameter is the ArrayBufferView, Blob, DOMString,
5859
* or FormData data that is to be transmitted.
5960
*/
60-
def sendBeacon(url: String, data: BodyInit = null): Boolean = js.native
61+
def sendBeacon(url: String, data: dom.BodyInit = null): Boolean = js.native
6162
}
6263
}

src/main/scala/org/scalajs/dom/experimental/cachestorage/CacheStorage.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.scalajs.dom.experimental.cachestorage
22

3-
import org.scalajs.dom.experimental._
3+
import org.scalajs.dom._
44
import scala.scalajs.js
55
import scala.scalajs.js.annotation._
66

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

Lines changed: 158 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,136 @@ package org.scalajs.dom
22

33
import org.scalajs.dom
44
import scala.scalajs.js
5-
import scala.scalajs.js.|
5+
import scala.scalajs.js.annotation._
66

77
package object experimental {
88

9-
/**
10-
* defined at [[https://fetch.spec.whatwg.org/#request-class ¶6.3 Request class]]
11-
* of whatwg Fetch spec
12-
*/
13-
type RequestInfo = String | Request
14-
15-
/**
16-
* defined at [[https://fetch.spec.whatwg.org/#headersinit ¶6.1 Header Class]]
17-
* in whatwg Fetch spec
18-
* todo: it should be OpenEndedDictionary[ByteString]
19-
*/
20-
type HeadersInit =
21-
Headers | Sequence[Sequence[ByteString]] | OpenEndedDictionary[ByteString]
22-
23-
/**
24-
* This type should capture strings consisting only of ASCII chars
25-
* todo: is there a way to capture this type?
26-
*/
27-
type ByteString = String
28-
29-
/**
30-
* defined at [[https://fetch.spec.whatwg.org/#body-mixin ¶6.2 Body mixin]]
31-
* in whatwg Fetch spec
32-
*/
33-
type BodyInit =
34-
Blob | BufferSource | FormData | String //todo: add URLSearchParams
35-
36-
/**
37-
* WebIDL sequence<T> is js.Array[T] | JSIterable[T]. However @mseddon knows
38-
* at least Blink's IDL compiler treats these as simply js.Array[T] for now.
39-
* We keep this type as a reminder to check in more detail
40-
*/
41-
type Sequence[T] = js.Array[T]
42-
43-
/**
44-
* see [[https://fetch.spec.whatwg.org/#headers-class ¶6.1 Headers class]] in
45-
* whatwg Fetch spec.
46-
* also see: [[https://github.com/whatwg/fetch/issues/164 issue 164]] in Fetch
47-
* API git repo, as this is not clearly defined
48-
*/
49-
type OpenEndedDictionary[T] = js.Dictionary[T]
9+
// old package.scala
10+
11+
@deprecated("use dom.RequestInfo instead", "2.0.0")
12+
type RequestInfo = dom.RequestInfo
13+
14+
@deprecated("use dom.HeadersInit instead", "2.0.0")
15+
type HeadersInit = dom.HeadersInit
16+
17+
@deprecated("use dom.ByteString instead", "2.0.0")
18+
type ByteString = dom.ByteString
19+
20+
@deprecated("use dom.BodyInit instead", "2.0.0")
21+
type BodyInit = dom.BodyInit
22+
23+
@deprecated("use dom.Sequence instead", "2.0.0")
24+
type Sequence[T] = dom.Sequence[T]
25+
26+
@deprecated("use dom.OpenEndedDictionary instead", "2.0.0")
27+
type OpenEndedDictionary[T] = dom.OpenEndedDictionary[T]
28+
29+
// old AbortController.scala
30+
31+
@deprecated("use dom.AbortController instead", "2.0.0")
32+
type AbortController = dom.AbortController
33+
34+
@deprecated("use dom.AbortSignal instead", "2.0.0")
35+
type AbortSignal = dom.AbortSignal
36+
37+
// old Fetch.scala
38+
39+
@deprecated("use dom.fetch instead", "2.0.0")
40+
object Fetch {
41+
@js.native
42+
@JSGlobal("fetch")
43+
def fetch(info: RequestInfo,
44+
init: RequestInit = null): js.Promise[Response] = js.native
45+
}
46+
47+
@deprecated("use dom.Request instead", "2.0.0")
48+
type Request = dom.Request
49+
50+
@deprecated("use dom.RequestInit instead", "2.0.0")
51+
type RequestInit = dom.RequestInit
52+
53+
@deprecated("use dom.Response instead", "2.0.0")
54+
type Response = dom.Response
55+
56+
@deprecated("use dom.Response instead", "2.0.0")
57+
lazy val Response: dom.Response.type = dom.Response
58+
59+
@deprecated("use dom.ResponseInit instead", "2.0.0")
60+
type ResponseInit = dom.ResponseInit
61+
62+
@deprecated("use new dom.ResponseInit { ... } instead", "2.0.0")
63+
object ResponseInit {
64+
def apply(_status: Int = 200, _statusText: ByteString = "OK",
65+
_headers: HeadersInit = js.Dictionary[String]()): ResponseInit = {
66+
new ResponseInit {
67+
var status = _status
68+
var statusText = _statusText
69+
var headers = _headers
70+
}
71+
}
72+
}
73+
74+
@deprecated("use dom.Body instead", "2.0.0")
75+
type Body = dom.Body
76+
77+
@deprecated("use dom.Headers instead", "2.0.0")
78+
type Headers = dom.Headers
79+
80+
@deprecated("use dom.ReferrerPolicy instead", "2.0.0")
81+
type ReferrerPolicy = dom.ReferrerPolicy
82+
83+
@deprecated("use dom.ReferrerPolicy instead", "2.0.0")
84+
lazy val ReferrerPolicy: dom.ReferrerPolicy.type = dom.ReferrerPolicy
85+
86+
@deprecated("use dom.HttpMethod instead", "2.0.0")
87+
type HttpMethod = dom.HttpMethod
88+
89+
@deprecated("use dom.HttpMethod instead", "2.0.0")
90+
lazy val HttpMethod: dom.HttpMethod.type = dom.HttpMethod
91+
92+
@deprecated("use dom.RequestType instead", "2.0.0")
93+
type RequestType = dom.RequestType
94+
95+
@deprecated("use dom.RequestType instead", "2.0.0")
96+
lazy val RequestType: dom.RequestType.type = dom.RequestType
97+
98+
@deprecated("use dom.RequestDestination instead", "2.0.0")
99+
type RequestDestination = dom.RequestDestination
100+
101+
@deprecated("use dom.RequestDestination instead", "2.0.0")
102+
lazy val RequestDestination: dom.RequestDestination.type =
103+
dom.RequestDestination
104+
105+
@deprecated("use dom.RequestMode instead", "2.0.0")
106+
type RequestMode = dom.RequestMode
107+
108+
@deprecated("use dom.RequestMode instead", "2.0.0")
109+
lazy val RequestMode: dom.RequestMode.type = dom.RequestMode
110+
111+
@deprecated("use dom.RequestCredentials instead", "2.0.0")
112+
type RequestCredentials = dom.RequestCredentials
113+
114+
@deprecated("use dom.RequestCredentials instead", "2.0.0")
115+
lazy val RequestCredentials: dom.RequestCredentials.type =
116+
dom.RequestCredentials
117+
118+
@deprecated("use dom.RequestCache instead", "2.0.0")
119+
type RequestCache = dom.RequestCache
120+
121+
@deprecated("use dom.RequestCache instead", "2.0.0")
122+
lazy val RequestCache: dom.RequestCache.type = dom.RequestCache
123+
124+
@deprecated("use dom.RequestRedirect instead", "2.0.0")
125+
type RequestRedirect = dom.RequestRedirect
126+
127+
@deprecated("use dom.RequestRedirect instead", "2.0.0")
128+
lazy val RequestRedirect: dom.RequestRedirect.type = dom.RequestRedirect
129+
130+
@deprecated("use dom.ResponseType instead", "2.0.0")
131+
type ResponseType = dom.ResponseType
132+
133+
@deprecated("use dom.ResponseType instead", "2.0.0")
134+
lazy val ResponseType: dom.ResponseType.type = dom.ResponseType
50135

51136
// old Notification.scala
52137

@@ -58,4 +143,35 @@ package object experimental {
58143

59144
@deprecated("use dom.NotificationOptions instead", "2.0.0")
60145
type NotificationOptions = dom.NotificationOptions
146+
147+
// old Stream.scala
148+
149+
@deprecated("use dom.WriteableState instead", "2.0.0")
150+
type WriteableState = dom.WriteableState
151+
152+
@deprecated("use dom.WriteableState instead", "2.0.0")
153+
lazy val WriteableState: dom.WriteableState.type = dom.WriteableState
154+
155+
@deprecated("use dom.WriteableStream instead", "2.0.0")
156+
type WriteableStream[-T] = dom.WriteableStream[T]
157+
158+
@deprecated("use dom.ReadableStream instead", "2.0.0")
159+
type ReadableStream[+T] = dom.ReadableStream[T]
160+
161+
@deprecated("use dom.ReadableStreamReader instead", "2.0.0")
162+
type ReadableStreamReader[+T] = dom.ReadableStreamReader[T]
163+
164+
@deprecated("use dom.ReadableStreamController instead", "2.0.0")
165+
type ReadableStreamController[-T] = dom.ReadableStreamController[T]
166+
167+
@deprecated("use dom.Chunk instead", "2.0.0")
168+
type Chunk[+T] = dom.Chunk[T]
169+
170+
// old URL.scala
171+
172+
@deprecated("use dom.URL instead", "2.0.0")
173+
type URL = dom.URL
174+
175+
@deprecated("use dom.URLSearchParams instead", "2.0.0")
176+
type URLSearchParams = dom.URLSearchParams
61177
}

src/main/scala/org/scalajs/dom/experimental/serviceworkers/ServiceWorkers.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package org.scalajs.dom.experimental.serviceworkers
22

3-
import org.scalajs.dom.experimental.{Request, Response, Sequence}
3+
import org.scalajs.dom._
44
import org.scalajs.dom.webgl.RenderingContext
5-
import org.scalajs.dom.{
6-
Event, EventInit, EventTarget, MessageEvent, MessagePort, Notification,
7-
NotificationOptions, WorkerGlobalScope
8-
}
95
import scala.scalajs.js
106
import scala.scalajs.js.annotation._
117
import scala.scalajs.js.|

0 commit comments

Comments
 (0)