This repository was archived by the owner on Mar 16, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathFileReader.js
91 lines (69 loc) · 1.65 KB
/
FileReader.js
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright 2016 wkh237@github. All rights reserved.
// Use of this source code is governed by a MIT-style license that can be
// found in the LICENSE file.
import RNFetchBlob from '../index.js'
import ProgressEvent from './ProgressEvent.js'
import EventTarget from './EventTarget'
import Blob from './Blob'
import Log from '../utils/log.js'
import fs from '../fs'
const log = new Log('FileReader')
log.level(3)
export default class FileReader extends EventTarget {
static get EMPTY(){
return 0
}
static get LOADING(){
return 1
}
static get DONE(){
return 2
}
// properties
_readState:number = 0;
_result:any;
_error:any;
get isRNFBPolyFill(){ return true }
// event handlers
onloadstart:(e:Event) => void;
onprogress:(e:Event) => void;
onload:(e:Event) => void;
onabort:(e:Event) => void;
onerror:(e:Event) => void;
onloadend:(e:Event) => void;
constructor() {
super()
log.verbose('file reader const')
this._result = null
}
abort() {
log.verbose('abort')
}
readAsArrayBuffer(b:Blob) {
log.verbose('readAsArrayBuffer', b)
}
readAsBinaryString(b:Blob) {
log.verbose('readAsBinaryString', b)
}
readAsText(b:Blob, label:?string) {
log.verbose('readAsText', b, label)
}
readAsDataURL(b:Blob) {
log.verbose('readAsDataURL', b)
}
dispatchEvent(event, e) {
log.verbose('dispatch event', event, e)
super.dispatchEvent(event, e)
if(typeof this[`on${event}`] === 'function') {
this[`on${event}`](e)
}
}
// private methods
// getters and setters
get readyState() {
return this._readyState
}
get result() {
return this._result
}
}