forked from scala-js/scala-js-dom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFileReaderSync.scala
48 lines (42 loc) · 1.59 KB
/
FileReaderSync.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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 = js.native): String = js.native
}