@beenotung/tslib
Version: 
utils library in Typescript
38 lines (37 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.blobToBuffer = blobToBuffer;
exports.blobToText = blobToText;
exports.blobToString = blobToString;
exports.arrayBufferToString = arrayBufferToString;
const arraybuffer_to_buffer_1 = require("./arraybuffer-to-buffer");
async function blobToBuffer(blob) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.onload = () => resolve((0, arraybuffer_to_buffer_1.arrayBufferToBuffer)(reader.result));
        reader.onerror = e => reject(e);
        reader.readAsArrayBuffer(blob);
    });
}
function blobToText(blob) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.onload = () => {
            if (reader.result === null) {
                return reject('unexpected null reader.result');
            }
            return resolve(reader.result);
        };
        reader.onerror = e => reject(e);
        reader.readAsText(blob);
    });
}
function blobToString(blob) {
    return blobToText(blob).then(x => typeof x === 'string' ? x : arrayBufferToString(x));
}
function arrayBufferToString(array, encode) {
    if (typeof array === 'string') {
        return array;
    }
    return new TextDecoder(encode).decode(array);
}