A promisified FileReader for browsers

A promisified FileReader implementation very similar to the browser's FileReader API, with a few differences:
- the File or Blob instance is given at construction time;
- all
readAs... methods don't take a Blob or File instance as first argument anymore;
- all
readAs... methods return a Promise that can be awaited;
- reading in chunks is easy as:
- you just need to await the next chunk (no event / callback API anymore);
- the current reading position is automatically tracked.
Usage
import { FileReader } from '@tanker/file-reader';
const file = new File(
['The quick brown fox jumps over the lazy dog'],
'fox.txt',
{ type: 'plain/text' }
);
const reader = new FileReader(file);
const text = await reader.readAsText('UTF-8');
const dataUrl = await reader.readAsDataURL();
const arrayBuffer = await reader.readAsArrayBuffer();
const chunkSize = 8;
let chunk;
do {
chunk = await reader.readAsArrayBuffer(chunkSize);
} while (chunk.byteLength > 0);
About Tanker
This package is a dependency of the Tanker client SDKs for end-to-end encryption:
Read the documentation to get started.