UNPKG

id3js

Version:

A modern ID3 parser written completely in JavaScript, making use of typed arrays and the HTML5 File API

32 lines (31 loc) 800 B
import { Reader } from './reader.js'; /** * Reads a `File` instance */ export class BrowserFileReader extends Reader { /** * @param {File} file File to read */ constructor(file) { super(); this._file = file; } /** @inheritdoc */ async open() { this.size = this._file.size; } /** @inheritdoc */ async read(length, position) { const slice = this._file.slice(position, position + length); return new Promise((resolve, reject) => { const fr = new FileReader(); fr.onload = () => { resolve(fr.result); }; fr.onerror = () => { reject(new Error('File read failed')); }; fr.readAsArrayBuffer(slice); }); } }