binconv
Version:
Binary converters for Blob, Uint8Array, ReadableStream, ArrayBuffer, string in JavaScript/TypeScript
36 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var BlobStreamController = (function () {
function BlobStreamController(blob, size) {
this.blob = blob;
this.index = 0;
this.chunkSize = size || 1024 * 64;
}
BlobStreamController.prototype.pull = function (controller) {
var _this = this;
return new Promise(function (resolve, reject) {
var bytesLeft = _this.blob.size - _this.index;
if (bytesLeft <= 0) {
controller.close();
return resolve();
}
var size = Math.min(_this.chunkSize, bytesLeft);
var slice = _this.blob.slice(_this.index, _this.index + size);
var reader = new FileReader();
reader.onload = function () {
controller.enqueue(new Uint8Array(reader.result));
resolve();
};
reader.onerror = reject;
reader.readAsArrayBuffer(slice);
_this.index += size;
});
};
return BlobStreamController;
}());
function blobToReadableStream(blob, size) {
return new ReadableStream(new BlobStreamController(blob, size));
}
exports.blobToReadableStream = blobToReadableStream;
exports.default = blobToReadableStream;
//# sourceMappingURL=blobToReadableStream.js.map