31 lines
855 B
TypeScript

function attachErrorListener(
reader: FileReader,
file: File,
reject: (err: Error) => void,
) {
reader.onerror = () => reject(new Error('Error reading file: ' +
(reader.error ? reader.error.message : file.name)))
}
export async function readAsDataURL(file: File): Promise<string> {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = () => {
resolve(reader.result as string)
}
attachErrorListener(reader, file, reject)
reader.readAsDataURL(file)
})
}
export async function readAsArrayBuffer(file: File): Promise<ArrayBuffer> {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = () => {
resolve(reader.result as ArrayBuffer)
}
attachErrorListener(reader, file, reject)
reader.readAsArrayBuffer(file)
})
}