UNPKG

react-native-blob-util

Version:

A module provides upload, download, and files access API. Supports file stream read/write for process large files.

92 lines (68 loc) 1.79 kB
// 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; } }