@tanker/file-reader
TypeScript icon, indicating that this package has built-in type declarations

4.1.1 • Public • Published

A promisified FileReader for browsers

License NPM Package Minified Size

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';

// Retrieve a file or blob somehow
const file = new File(
  ['The quick brown fox jumps over the lazy dog'],
  'fox.txt',
  { type: 'plain/text' }
);

// Create your file reader
const reader = new FileReader(file);

// Read the whole file
const text = await reader.readAsText('UTF-8');
const dataUrl = await reader.readAsDataURL();
const arrayBuffer = await reader.readAsArrayBuffer();

// Or read binary chunks (ArrayBuffer)
const chunkSize = 8; // bytes
let chunk;
do {
  chunk = await reader.readAsArrayBuffer(chunkSize);
  // do something with the chunk
} 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.

/@tanker/file-reader/

    Package Sidebar

    Install

    npm i @tanker/file-reader

    Weekly Downloads

    17,203

    Version

    4.1.1

    License

    Apache-2.0

    Unpacked Size

    22.3 kB

    Total Files

    19

    Last publish

    Collaborators

    • jmounier
    • maximerety
    • tankeradmin
    • quentin.vernot.tanker