Skip to content

Commit

Permalink
Added FileReaderSync to dom.experimental
Browse files Browse the repository at this point in the history
  • Loading branch information
catap committed Sep 30, 2020
1 parent ee0bb77 commit 23c4c43
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions src/main/scala/org/scalajs/dom/experimental/FileReaderSync.scala
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit 23c4c43

Please sign in to comment.