From 77ee1cb55d402ef28bfbec3b264d45b753ee84ee Mon Sep 17 00:00:00 2001 From: Zak Date: Tue, 17 Sep 2019 11:04:55 -0500 Subject: [PATCH 1/4] Add default values for RequestInit fields This way, users do not have to recite every field when creating a RequestInit. Also, the spec says the RequestInit dictionary must contain a field `window` which is set to null. We might as well include this too as a final variable, since the spec shows omitting it should be a type error. --- .../org/scalajs/dom/experimental/Fetch.scala | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala index 967305d07..d189225a2 100644 --- a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala +++ b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala @@ -133,30 +133,31 @@ object RequestInit { * The underlying object is a dictionary. This trait is here to help encode * the types. */ +@js.native trait RequestInit extends js.Object { var method: js.UndefOr[HttpMethod] - var headers: js.UndefOr[HeadersInit] + var headers: js.UndefOr[HeadersInit] = js.undefined var body: js.UndefOr[BodyInit] - var referrer: js.UndefOr[String] + var referrer: js.UndefOr[String] = js.undefined - var referrerPolicy: js.UndefOr[ReferrerPolicy] + var referrerPolicy: js.UndefOr[ReferrerPolicy] = js.undefined - var mode: js.UndefOr[RequestMode] + var mode: js.UndefOr[RequestMode] = js.undefined - var credentials: js.UndefOr[RequestCredentials] + var credentials: js.UndefOr[RequestCredentials] = js.undefined - var cache: js.UndefOr[RequestCache] + var cache: js.UndefOr[RequestCache] = js.undefined - var redirect: js.UndefOr[RequestRedirect] + var redirect: js.UndefOr[RequestRedirect] = js.undefined - var integrity: js.UndefOr[String] + var integrity: js.UndefOr[String] = js.undefined - var keepalive: js.UndefOr[Boolean] + var keepalive: js.UndefOr[Boolean] = js.undefined - var signal: js.UndefOr[AbortSignal] + var signal: js.UndefOr[AbortSignal] = js.undefined /** * The whatwg spec section on [[https://fetch.spec.whatwg.org/#requestinit RequestInit dictionary]] @@ -164,8 +165,9 @@ trait RequestInit extends js.Object { * In the detailed steps section for [[https://fetch.spec.whatwg.org/#dom-request the Request(input,init) constructor]] * it says even more clearly: * "If init's window member is present and it is not null, throw a TypeError." + * Therefore, this field is set to null and cannot be changed. */ - var window: js.UndefOr[Null] + final var window: Null = null } /** From 674e012329e42941cb859743dc3abedb9cc8b152 Mon Sep 17 00:00:00 2001 From: Zak Patterson Date: Tue, 29 Oct 2019 10:07:05 -0500 Subject: [PATCH 2/4] Remove native from RequestInit --- src/main/scala/org/scalajs/dom/experimental/Fetch.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala index d189225a2..93b2bd84f 100644 --- a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala +++ b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala @@ -133,13 +133,12 @@ object RequestInit { * The underlying object is a dictionary. This trait is here to help encode * the types. */ -@js.native trait RequestInit extends js.Object { var method: js.UndefOr[HttpMethod] var headers: js.UndefOr[HeadersInit] = js.undefined - var body: js.UndefOr[BodyInit] + var body: js.UndefOr[BodyInit] = js.undefined var referrer: js.UndefOr[String] = js.undefined @@ -165,9 +164,10 @@ trait RequestInit extends js.Object { * In the detailed steps section for [[https://fetch.spec.whatwg.org/#dom-request the Request(input,init) constructor]] * it says even more clearly: * "If init's window member is present and it is not null, throw a TypeError." - * Therefore, this field is set to null and cannot be changed. */ - final var window: Null = null + var window: Null + + window = null } /** From 011e0c8bc2ee16b7da98ead6d4260c6679e844fe Mon Sep 17 00:00:00 2001 From: Zak Patterson Date: Tue, 29 Oct 2019 10:17:35 -0500 Subject: [PATCH 3/4] Simplify window field definition It is ok if window is undefined, it just must not have a value other than `null` if defined. --- src/main/scala/org/scalajs/dom/experimental/Fetch.scala | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala index 93b2bd84f..dae81dcfb 100644 --- a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala +++ b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala @@ -165,9 +165,7 @@ trait RequestInit extends js.Object { * it says even more clearly: * "If init's window member is present and it is not null, throw a TypeError." */ - var window: Null - - window = null + var window: js.UndefOr[Null] = js.undefined } /** From 55c1d66a4e26fdebf7cebf84b6d3c97f9ed1e688 Mon Sep 17 00:00:00 2001 From: Zak Date: Wed, 29 Apr 2020 11:11:00 -0500 Subject: [PATCH 4/4] Add default to RequestInit method, per review --- src/main/scala/org/scalajs/dom/experimental/Fetch.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala index dae81dcfb..e0a0b319e 100644 --- a/src/main/scala/org/scalajs/dom/experimental/Fetch.scala +++ b/src/main/scala/org/scalajs/dom/experimental/Fetch.scala @@ -134,7 +134,7 @@ object RequestInit { * the types. */ trait RequestInit extends js.Object { - var method: js.UndefOr[HttpMethod] + var method: js.UndefOr[HttpMethod] = js.undefined var headers: js.UndefOr[HeadersInit] = js.undefined