grungnet/src/helpers/blobToBuffer.js
2021-02-19 09:13:25 +11:00

29 lines
695 B
JavaScript

/**
* @param {Blob} blob
* @returns {Promise<Uint8Array>}
*/
async function blobToBuffer(blob) {
if (blob.arrayBuffer) {
const arrayBuffer = await blob.arrayBuffer();
return new Uint8Array(arrayBuffer);
} else {
return new Promise((resolve, reject) => {
const reader = new FileReader();
function onLoadEnd(event) {
reader.removeEventListener("loadend", onLoadEnd, false);
if (event.error) {
reject(event.error);
} else {
resolve(Buffer.from(reader.result));
}
}
reader.addEventListener("loadend", onLoadEnd, false);
reader.readAsArrayBuffer(blob);
});
}
}
export default blobToBuffer;