diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index f7e68021c..07609f157 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -14408,6 +14408,7 @@ Navigator[JC] def languages: js.Array[String] Navigator[JC] def onLine: Boolean Navigator[JC] def platform: String Navigator[JC] def sendBeacon(url: String, data: BodyInit?): Boolean +Navigator[JC] def storage: StorageManager Navigator[JC] def userAgent: String Navigator[JC] def vibrate(duration: Double): Boolean Navigator[JC] def vibrate(pattern: js.Array[Double]): Boolean @@ -22921,6 +22922,8 @@ Storage[JC] def key(index: Int): String Storage[JC] var length: Int Storage[JC] def removeItem(key: String): Unit Storage[JC] def setItem(key: String, data: String): Unit +StorageEstimate[JT] val quota: Double +StorageEstimate[JT] val usage: Double StorageEvent[JC] def bubbles: Boolean StorageEvent[JC] def cancelBubble: Boolean StorageEvent[JC] def cancelable: Boolean @@ -22948,6 +22951,9 @@ StorageEventInit[JT] var oldValue: js.UndefOr[String] StorageEventInit[JT] var scoped: js.UndefOr[Boolean] StorageEventInit[JT] var storageArea: js.UndefOr[Storage] StorageEventInit[JT] var url: js.UndefOr[String] +StorageManager[JT] def estimate(): js.Promise[StorageEstimate] +StorageManager[JT] def persist(): js.Promise[Boolean] +StorageManager[JT] def persisted(): js.Promise[Boolean] StyleMedia[JT] def matchMedium(mediaquery: String): Boolean StyleMedia[JT] def `type`: String StyleSheet[JC] def disabled: Boolean @@ -25154,19 +25160,10 @@ experimental/sharedworkers/SharedWorkerGlobalScope[JT] def removeEventListener[T experimental/sharedworkers/SharedWorkerGlobalScope[JT] def self: this.type experimental/sharedworkers/SharedWorkerGlobalScope[JT] def setInterval(handler: js.Function0[Any], timeout: Double): Int experimental/sharedworkers/SharedWorkerGlobalScope[JT] def setTimeout(handler: js.Function0[Any], timeout: Double): Int -experimental/storage/package[SO] def estimate(): js.Promise[StorageEstimate] -experimental/storage/package[SO] def persist(): js.Promise[Boolean] -experimental/storage/package[SO] def persisted(): js.Promise[Boolean] -experimental/storage/package[SO] val quota: Double -experimental/storage/package[SO] val storage: StorageManager -experimental/storage/package[SO] implicit def toNavigatorStorage(navigator: dom.Navigator): NavigatorStorage -experimental/storage/package[SO] val usage: Double -experimental/storage/package.NavigatorStorage[JT] val storage: StorageManager -experimental/storage/package.StorageEstimate[JT] val quota: Double -experimental/storage/package.StorageEstimate[JT] val usage: Double -experimental/storage/package.StorageManager[JT] def estimate(): js.Promise[StorageEstimate] -experimental/storage/package.StorageManager[JT] def persist(): js.Promise[Boolean] -experimental/storage/package.StorageManager[JT] def persisted(): js.Promise[Boolean] +experimental/storage/package[SO] type NavigatorStorage = dom.Navigator (@deprecated in 2.0.0) +experimental/storage/package[SO] type StorageEstimate = dom.StorageEstimate (@deprecated in 2.0.0) +experimental/storage/package[SO] type StorageManager = dom.StorageManager (@deprecated in 2.0.0) +experimental/storage/package[SO] def toNavigatorStorage(navigator: dom.Navigator): dom.Navigator (@deprecated in 2.0.0) experimental/webgl/ANGLE_instanced_arrays[SO] experimental/webgl/EXT_blend_minmax[SO] experimental/webgl/EXT_color_buffer_half_float[SO] diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index f7e68021c..07609f157 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -14408,6 +14408,7 @@ Navigator[JC] def languages: js.Array[String] Navigator[JC] def onLine: Boolean Navigator[JC] def platform: String Navigator[JC] def sendBeacon(url: String, data: BodyInit?): Boolean +Navigator[JC] def storage: StorageManager Navigator[JC] def userAgent: String Navigator[JC] def vibrate(duration: Double): Boolean Navigator[JC] def vibrate(pattern: js.Array[Double]): Boolean @@ -22921,6 +22922,8 @@ Storage[JC] def key(index: Int): String Storage[JC] var length: Int Storage[JC] def removeItem(key: String): Unit Storage[JC] def setItem(key: String, data: String): Unit +StorageEstimate[JT] val quota: Double +StorageEstimate[JT] val usage: Double StorageEvent[JC] def bubbles: Boolean StorageEvent[JC] def cancelBubble: Boolean StorageEvent[JC] def cancelable: Boolean @@ -22948,6 +22951,9 @@ StorageEventInit[JT] var oldValue: js.UndefOr[String] StorageEventInit[JT] var scoped: js.UndefOr[Boolean] StorageEventInit[JT] var storageArea: js.UndefOr[Storage] StorageEventInit[JT] var url: js.UndefOr[String] +StorageManager[JT] def estimate(): js.Promise[StorageEstimate] +StorageManager[JT] def persist(): js.Promise[Boolean] +StorageManager[JT] def persisted(): js.Promise[Boolean] StyleMedia[JT] def matchMedium(mediaquery: String): Boolean StyleMedia[JT] def `type`: String StyleSheet[JC] def disabled: Boolean @@ -25154,19 +25160,10 @@ experimental/sharedworkers/SharedWorkerGlobalScope[JT] def removeEventListener[T experimental/sharedworkers/SharedWorkerGlobalScope[JT] def self: this.type experimental/sharedworkers/SharedWorkerGlobalScope[JT] def setInterval(handler: js.Function0[Any], timeout: Double): Int experimental/sharedworkers/SharedWorkerGlobalScope[JT] def setTimeout(handler: js.Function0[Any], timeout: Double): Int -experimental/storage/package[SO] def estimate(): js.Promise[StorageEstimate] -experimental/storage/package[SO] def persist(): js.Promise[Boolean] -experimental/storage/package[SO] def persisted(): js.Promise[Boolean] -experimental/storage/package[SO] val quota: Double -experimental/storage/package[SO] val storage: StorageManager -experimental/storage/package[SO] implicit def toNavigatorStorage(navigator: dom.Navigator): NavigatorStorage -experimental/storage/package[SO] val usage: Double -experimental/storage/package.NavigatorStorage[JT] val storage: StorageManager -experimental/storage/package.StorageEstimate[JT] val quota: Double -experimental/storage/package.StorageEstimate[JT] val usage: Double -experimental/storage/package.StorageManager[JT] def estimate(): js.Promise[StorageEstimate] -experimental/storage/package.StorageManager[JT] def persist(): js.Promise[Boolean] -experimental/storage/package.StorageManager[JT] def persisted(): js.Promise[Boolean] +experimental/storage/package[SO] type NavigatorStorage = dom.Navigator (@deprecated in 2.0.0) +experimental/storage/package[SO] type StorageEstimate = dom.StorageEstimate (@deprecated in 2.0.0) +experimental/storage/package[SO] type StorageManager = dom.StorageManager (@deprecated in 2.0.0) +experimental/storage/package[SO] def toNavigatorStorage(navigator: dom.Navigator): dom.Navigator (@deprecated in 2.0.0) experimental/webgl/ANGLE_instanced_arrays[SO] experimental/webgl/EXT_blend_minmax[SO] experimental/webgl/EXT_color_buffer_half_float[SO] diff --git a/src/main/scala/org/scalajs/dom/experimental/storage/package.scala b/src/main/scala/org/scalajs/dom/experimental/storage/package.scala index 52a57a74a..216223dcf 100644 --- a/src/main/scala/org/scalajs/dom/experimental/storage/package.scala +++ b/src/main/scala/org/scalajs/dom/experimental/storage/package.scala @@ -1,30 +1,20 @@ -package org.scalajs.dom.experimental - -import org.scalajs.dom -import scala.language.implicitConversions -import scala.scalajs.js +package org.scalajs +package dom.experimental /** https://storage.spec.whatwg.org/ */ package object storage { - implicit def toNavigatorStorage(navigator: dom.Navigator): NavigatorStorage = - navigator.asInstanceOf[NavigatorStorage] + @deprecated("use dom.Navigator directly instead", "2.0.0") + def toNavigatorStorage(navigator: dom.Navigator): dom.Navigator = + navigator + + @deprecated("use dom.Navigator directly instead", "2.0.0") + type NavigatorStorage = dom.Navigator - @js.native - trait NavigatorStorage extends js.Object { - val storage: StorageManager = js.native - } + @deprecated("use dom.StorageManager instead", "2.0.0") + type StorageManager = dom.StorageManager - @js.native - trait StorageManager extends js.Any { - def persisted(): js.Promise[Boolean] = js.native - def persist(): js.Promise[Boolean] = js.native - def estimate(): js.Promise[StorageEstimate] = js.native - } + @deprecated("use dom.StorageEstimate instead", "2.0.0") + type StorageEstimate = dom.StorageEstimate - @js.native - trait StorageEstimate extends js.Any { - val usage: Double = js.native - val quota: Double = js.native - } } diff --git a/src/main/scala/org/scalajs/dom/lib.scala b/src/main/scala/org/scalajs/dom/lib.scala index 1dfee2ac4..c27c7266d 100644 --- a/src/main/scala/org/scalajs/dom/lib.scala +++ b/src/main/scala/org/scalajs/dom/lib.scala @@ -326,6 +326,9 @@ class Navigator */ def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native + /** https://storage.spec.whatwg.org/ */ + def storage: StorageManager = js.native + /** Implements the Gamepad API. * * [[https://www.w3.org/TR/2015/WD-gamepad-20151217/ W3C Working Draft]] diff --git a/src/main/scala/org/scalajs/dom/storage.scala b/src/main/scala/org/scalajs/dom/storage.scala new file mode 100644 index 000000000..81d5b6de6 --- /dev/null +++ b/src/main/scala/org/scalajs/dom/storage.scala @@ -0,0 +1,16 @@ +package org.scalajs.dom + +import scala.scalajs.js + +@js.native +trait StorageManager extends js.Object { + def persisted(): js.Promise[Boolean] = js.native + def persist(): js.Promise[Boolean] = js.native + def estimate(): js.Promise[StorageEstimate] = js.native +} + +@js.native +trait StorageEstimate extends js.Object { + val usage: Double = js.native + val quota: Double = js.native +}