mirror of
https://github.com/status-im/whispervis.git
synced 2025-02-02 08:25:06 +00:00
26 lines
619 B
Go
26 lines
619 B
Go
package jsapi
|
|
|
|
import "github.com/gopherjs/gopherjs/js"
|
|
|
|
// FileReader implements FileReader API for js.Object.
|
|
type FileReader struct {
|
|
*js.Object // FileReader object
|
|
}
|
|
|
|
// NewFileReader inits new FileReader.
|
|
func NewFileReader() *FileReader {
|
|
return &FileReader{
|
|
Object: js.Global.Get("FileReader").New(),
|
|
}
|
|
}
|
|
|
|
// ReadAll reads all data from blob using FileReader API.
|
|
func (fr *FileReader) ReadAll(blob *js.Object) []byte {
|
|
ch := make(chan []byte)
|
|
fr.Set("onload", func() {
|
|
ch <- js.Global.Get("Uint8Array").New(fr.Get("result")).Interface().([]byte)
|
|
})
|
|
fr.Call("readAsArrayBuffer", blob)
|
|
return <-ch
|
|
}
|