/** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ export function readFile (file: File, isBinary = false) { const fileReader = new FileReader() return new Promise((resolve, reject) => { fileReader.onerror = () => { fileReader.abort() reject(new DOMException('Error parsing file.')) } fileReader.onload = () => { resolve(isBinary ? new Uint8Array(fileReader.result as ArrayBuffer) : fileReader.result as string) } if (isBinary) { fileReader.readAsArrayBuffer(file) } else { fileReader.readAsText(file) } }) } export function readFileAsText(file: File) { return readFile(file, false) as Promise } export function readFileAsBuffer(file: File) { return readFile(file, true) as Promise } export async function readUrl(url: string, isBinary: boolean) { const response = await fetch(url); return isBinary ? new Uint8Array(await response.arrayBuffer()) : await response.text(); } export function readUrlAsText(url: string) { return readUrl(url, false) as Promise } export function readUrlAsBuffer(url: string) { return readUrl(url, true) as Promise }