forked from RonRadtke/react-native-blob-util
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathFileReader.js
91 lines (68 loc) · 1.75 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 EventTarget from './EventTarget';
import Blob from './Blob';
import Log from '../utils/log.js';
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;
}
}