From 23c4c43d71311d0904d23cb55a54bc1bd46e27e7 Mon Sep 17 00:00:00 2001 From: "Kirill A. Korinsky" Date: Wed, 30 Sep 2020 22:20:00 +0200 Subject: [PATCH 1/3] Added FileReaderSync to dom.experimental --- .../dom/experimental/FileReaderSync.scala | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala diff --git a/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala b/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala new file mode 100644 index 000000000..816254383 --- /dev/null +++ b/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala @@ -0,0 +1,48 @@ +package org.scalajs.dom.experimental + +import org.scalajs.dom.raw.Blob + +import scala.scalajs.js +import scala.scalajs.js.annotation._ +import scala.scalajs.js.typedarray.ArrayBuffer + +/** + * The FileReaderSync interface allows to read File or Blob objects synchronously. + * + * This interface is only available in workers as it enables synchronous I/O that could potentially block. + * + * MDN + */ +@js.native +@JSGlobal +class FileReaderSync() extends js.Object { + + /** + * The readAsArrayBuffer method is used to starts reading the contents of the + * specified Blob or File. When the read operation is finished, the readyState + * becomes DONE, and the loadend is triggered. At that time, the result attribute + * contains an ArrayBuffer representing the file's data. + * + * MDN + */ + def readAsArrayBuffer(blob: Blob): ArrayBuffer = js.native + + /** + * The readAsDataURL method is used to starts reading the contents of the specified + * Blob or File. When the read operation is finished, the readyState becomes DONE, and + * the loadend is triggered. At that time, the result attribute contains a data: URL + * representing the file's data as base64 encoded string. + * + * MDN + */ + def readAsDataURL(blob: Blob): URL = js.native + + /** + * The readAsText method is used to read the contents of the specified Blob or File. + * When the read operation is complete, the readyState is changed to DONE, the loadend + * is triggered, and the result attribute contains the contents of the file as a text string. + * + * MDN + */ + def readAsText(blob: Blob, encoding: String = "UTF-8"): String = js.native +} From e0a2c6aae9ceaadd2bac6d96fcefb15c28023b41 Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Mon, 23 Aug 2021 00:53:54 +0000 Subject: [PATCH 2/3] Run `prePR` --- api-reports/2_12.txt | 3 +++ api-reports/2_13.txt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index 4c87cd8b2..e636924b5 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -237,6 +237,9 @@ experimental/Body[JT] def text(): js.Promise[String] experimental/Chunk[JT] def done: Boolean experimental/Chunk[JT] def value: T experimental/Fetch[JO] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +experimental/FileReaderSync[JC] def readAsArrayBuffer(blob: Blob): ArrayBuffer +experimental/FileReaderSync[JC] def readAsDataURL(blob: Blob): URL +experimental/FileReaderSync[JC] def readAsText(blob: Blob, encoding: String = "UTF-8"): String experimental/Fullscreen[SO] def exitFullscreen(): js.UndefOr[js.Promise[Unit]] experimental/Fullscreen[SO] def fullscreenElement: Element experimental/Fullscreen[SO] def fullscreenEnabled: Boolean diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 5cf7be22c..3e608adee 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -237,6 +237,9 @@ experimental/Body[JT] def text(): js.Promise[String] experimental/Chunk[JT] def done: Boolean experimental/Chunk[JT] def value: T experimental/Fetch[JO] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +experimental/FileReaderSync[JC] def readAsArrayBuffer(blob: Blob): ArrayBuffer +experimental/FileReaderSync[JC] def readAsDataURL(blob: Blob): URL +experimental/FileReaderSync[JC] def readAsText(blob: Blob, encoding: String = "UTF-8"): String experimental/Fullscreen[SO] def exitFullscreen(): js.UndefOr[js.Promise[Unit]] experimental/Fullscreen[SO] def fullscreenElement: Element experimental/Fullscreen[SO] def fullscreenEnabled: Boolean From a1ced710391b6e211b14a86ac5f7ec33f23075e6 Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Mon, 23 Aug 2021 01:03:09 +0000 Subject: [PATCH 3/3] Fix default argument --- api-reports/2_12.txt | 2 +- api-reports/2_13.txt | 2 +- .../scala/org/scalajs/dom/experimental/FileReaderSync.scala | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index e636924b5..c70a4a2a9 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -239,7 +239,7 @@ experimental/Chunk[JT] def value: T experimental/Fetch[JO] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] experimental/FileReaderSync[JC] def readAsArrayBuffer(blob: Blob): ArrayBuffer experimental/FileReaderSync[JC] def readAsDataURL(blob: Blob): URL -experimental/FileReaderSync[JC] def readAsText(blob: Blob, encoding: String = "UTF-8"): String +experimental/FileReaderSync[JC] def readAsText(blob: Blob, encoding: String?): String experimental/Fullscreen[SO] def exitFullscreen(): js.UndefOr[js.Promise[Unit]] experimental/Fullscreen[SO] def fullscreenElement: Element experimental/Fullscreen[SO] def fullscreenEnabled: Boolean diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 3e608adee..9ffff7a23 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -239,7 +239,7 @@ experimental/Chunk[JT] def value: T experimental/Fetch[JO] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] experimental/FileReaderSync[JC] def readAsArrayBuffer(blob: Blob): ArrayBuffer experimental/FileReaderSync[JC] def readAsDataURL(blob: Blob): URL -experimental/FileReaderSync[JC] def readAsText(blob: Blob, encoding: String = "UTF-8"): String +experimental/FileReaderSync[JC] def readAsText(blob: Blob, encoding: String?): String experimental/Fullscreen[SO] def exitFullscreen(): js.UndefOr[js.Promise[Unit]] experimental/Fullscreen[SO] def fullscreenElement: Element experimental/Fullscreen[SO] def fullscreenEnabled: Boolean diff --git a/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala b/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala index 816254383..7959edde5 100644 --- a/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala +++ b/src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala @@ -44,5 +44,5 @@ class FileReaderSync() extends js.Object { * * MDN */ - def readAsText(blob: Blob, encoding: String = "UTF-8"): String = js.native + def readAsText(blob: Blob, encoding: String = js.native): String = js.native }