filereader.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.makeFileReaderSource = void 0;
  4. const basesource_js_1 = require("./basesource.js");
  5. class FileReaderSource extends basesource_js_1.BaseSource {
  6. constructor(file) {
  7. super();
  8. this.file = file;
  9. }
  10. async fetchSlice(slice, signal) {
  11. return new Promise((resolve, reject) => {
  12. const blob = this.file.slice(slice.offset, slice.offset + slice.length);
  13. const reader = new FileReader();
  14. reader.onload = (event) => resolve(event.target.result);
  15. reader.onerror = reject;
  16. reader.onabort = reject;
  17. reader.readAsArrayBuffer(blob);
  18. if (signal) {
  19. signal.addEventListener('abort', () => reader.abort());
  20. }
  21. });
  22. }
  23. }
  24. /**
  25. * Create a new source from a given file/blob.
  26. * @param {Blob} file The file or blob to read from.
  27. * @returns The constructed source
  28. */
  29. function makeFileReaderSource(file) {
  30. return new FileReaderSource(file);
  31. }
  32. exports.makeFileReaderSource = makeFileReaderSource;
  33. //# sourceMappingURL=filereader.js.map