Skip to content

Migrate storage to dom #572

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Sep 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions api-reports/2_12.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down
23 changes: 10 additions & 13 deletions api-reports/2_13.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down
34 changes: 12 additions & 22 deletions src/main/scala/org/scalajs/dom/experimental/storage/package.scala
Original file line number Diff line number Diff line change
@@ -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
}
}
3 changes: 3 additions & 0 deletions src/main/scala/org/scalajs/dom/lib.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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]]
Expand Down
16 changes: 16 additions & 0 deletions src/main/scala/org/scalajs/dom/storage.scala
Original file line number Diff line number Diff line change
@@ -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
}