UNPKG

@configurator/ravendb

Version:
43 lines 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReadableWebToNodeStream = void 0; const readable_stream_1 = require("readable-stream"); class ReadableWebToNodeStream extends readable_stream_1.Readable { constructor(stream) { super(); this.bytesRead = 0; this.released = false; this.reader = stream.getReader(); } async _read() { if (this.released) { this.push(null); return; } this.pendingRead = this.reader.read(); const data = await this.pendingRead; delete this.pendingRead; if (data.done || this.released) { this.push(null); } else { this.bytesRead += data.value.length; this.push(data.value); } } async waitForReadToComplete() { if (this.pendingRead) { await this.pendingRead; } } async close() { await this.syncAndRelease(); } async syncAndRelease() { this.released = true; await this.waitForReadToComplete(); await this.reader.releaseLock(); } } exports.ReadableWebToNodeStream = ReadableWebToNodeStream; //# sourceMappingURL=ReadableWebToNodeStream.js.map