export function loadImage(imageUrl: string): Promise { return new Promise(async (resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.responseType = 'arraybuffer'; xhr.overrideMimeType('text/plain; charset=x-user-defined'); xhr.addEventListener('error', reject, false); xhr.addEventListener( 'load', async () => { if (xhr.status > 200) { reject(); return; } const reader = new FileReader(); const blob = new Blob([ xhr.response ]); reader.readAsDataURL(blob); reader.onloadend = () => { resolve(`${ reader.result }`); }; }, false ); xhr.open('GET', imageUrl, true); xhr.setRequestHeader('Cache-Control', 'max-age=604800, public'); xhr.send(null); }); }