var FileReaderMethodMap = {
arrayBuffer: 'readAsArrayBuffer',
binaryString: 'readAsBinaryString',
dataURL: 'readAsDataURL',
text: 'readAsText'
};
/**
* 读取 Blob 或 File 对象,转为 Base64/String/ArrayBuffer
*
* <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
*
* @function
* @alias module:Processor.fileReader
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader | FileReader}
* @since 4.16.0
* @param {Blob} blob Blob 或 File 对象
* @param {'arrayBuffer'|'binaryString'|'dataURL'|'text'} [type='dataURL'] 读取类型
* @returns {Promise<string|ArrayBuffer>} 文件内容
* @example
* const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含DOMString的数组
* const htmlBlob = new Blob(aFileParts, { type: 'text/html' }); // 得到 blob
*
* fileReader(htmlBlob).then(data=>{
* console.log(data); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
* });
*
* const textBlob = new Blob(aFileParts, { type: 'text/plain' });
*
* fileReader(textBlob, 'text').then(data=>{
* console.log(data); // <a id="a"><b id="b">hey!</b></a>
* });
*/
var fileReader = function (blob, type) {
if (type === void 0) { type = 'dataURL'; }
var method = FileReaderMethodMap[type];
if (!method) {
method = FileReaderMethodMap.dataURL;
}
return new Promise(function (resolve, reject) {
var reader = new FileReader();
reader[method](blob);
reader.onload = function () { return resolve(reader.result); };
reader.onerror = function (error) { return reject(error); };
});
};
export default fileReader;