UNPKG

node-web-stream-adapters

Version:
43 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.webStreamToReadable = void 0; const stream_1 = require("stream"); /** * See https://github.com/comunica/readable-from-web.js/blob/main/lib/ReadableFromWeb.ts * MIT License */ class ReadableFromWeb extends stream_1.Readable { reader; readerClosed; constructor(stream, options) { super(options); this.reader = stream.getReader(); this.readerClosed = false; this.reader.closed.then(() => { this.readerClosed = true; }).catch((error) => { this.readerClosed = true; this.destroy(error); }); } _destroy(error, callback) { if (!this.readerClosed) { this.reader.cancel(error).then().finally(() => { this.readerClosed = true; this.reader.releaseLock(); }); } callback && callback(error); } _read() { this.reader; this.reader.read() .then(chunk => this.push(chunk.done ? null : chunk.value)) .catch((error) => this.destroy(error)); } } function webStreamToReadable(stream, options) { return new ReadableFromWeb(stream, options); } exports.webStreamToReadable = webStreamToReadable; //# sourceMappingURL=webStreamToReadable.js.map