UNPKG

7.82 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/fromdomstream.ts"],"names":[],"mappings":"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","file":"fromdomstream.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\n\n// To work around circular-dependency hell, these need to be on\n// the AsyncIterable prototype for tee, pipeTo, and pipeThrough\nimport '../add/asynciterable-operators/publish';\nimport '../add/asynciterable-operators/todomstream';\n\n/** @ignore */\nconst SharedArrayBuf = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer;\n\nexport class AsyncIterableReadableStream<T> extends AsyncIterableX<T> {\n constructor(protected _stream: ReadableStream<T>) {\n super();\n }\n [Symbol.asyncIterator]() {\n const stream = this._stream;\n const reader = stream['getReader']();\n return _consumeReader(stream, reader, defaultReaderToAsyncIterator(reader));\n }\n}\n\nexport class AsyncIterableReadableByteStream extends AsyncIterableReadableStream<Uint8Array> {\n [Symbol.asyncIterator]() {\n let stream = this._stream;\n let reader: ReadableStreamBYOBReader;\n try {\n reader = stream['getReader']({ mode: 'byob' });\n } catch (e) {\n return super[Symbol.asyncIterator]() as AsyncIterableIterator<Uint8Array>;\n }\n const iterator = _consumeReader(stream, reader, byobReaderToAsyncIterator(reader));\n // \"pump\" the iterator once so it initializes and is ready to accept a buffer or bytesToRead\n iterator.next();\n return iterator;\n }\n}\n\nasync function* _consumeReader<T>(\n stream: ReadableStream<T>,\n reader: ReadableStreamBYOBReader | ReadableStreamDefaultReader,\n iterator: AsyncIterableIterator<T>\n) {\n let threw = false;\n try {\n yield* iterator;\n } catch (e) {\n if ((threw = true) && reader) {\n await reader['cancel'](e);\n }\n } finally {\n if (!reader) {\n return;\n }\n if (!threw) {\n await reader['cancel']();\n }\n if (stream.locked) {\n try {\n reader.closed.catch(() => {\n /* */\n });\n reader.releaseLock();\n } catch (e) {\n /* */\n }\n }\n }\n}\n\n/** @ignore */\nasync function* defaultReaderToAsyncIterator<T = any>(reader: ReadableStreamDefaultReader<T>) {\n let r: ReadableStreamReadResult<T>;\n while (!(r = await reader.read()).done) {\n yield r.value;\n }\n}\n\n/** @ignore */\nasync function* byobReaderToAsyncIterator(reader: ReadableStreamBYOBReader) {\n let r: IteratorResult<Uint8Array>;\n let value: number | ArrayBufferLike = yield null!;\n while (!(r = await readNext(reader, value, 0)).done) {\n value = yield r.value;\n }\n}\n\n/** @ignore */\nasync function readNext(\n reader: ReadableStreamBYOBReader,\n bufferOrLen: ArrayBufferLike | number,\n offset: number\n): Promise<ReadableStreamReadResult<Uint8Array>> {\n let size: number;\n let buffer: ArrayBufferLike;\n\n if (typeof bufferOrLen === 'number') {\n buffer = new ArrayBuffer((size = bufferOrLen));\n } else if (bufferOrLen instanceof ArrayBuffer) {\n size = (buffer = bufferOrLen).byteLength;\n } else if (bufferOrLen instanceof SharedArrayBuf) {\n size = (buffer = bufferOrLen).byteLength;\n } else {\n return { done: true, value: undefined! };\n }\n\n return await readInto(reader, buffer, offset, size);\n}\n\n/** @ignore */\nasync function readInto(\n reader: ReadableStreamBYOBReader,\n buffer: ArrayBufferLike,\n offset: number,\n size: number\n): Promise<ReadableStreamReadResult<Uint8Array>> {\n if (offset >= size) {\n return { done: false, value: new Uint8Array(buffer, 0, size) };\n }\n const { done, value } = await reader.read(new Uint8Array(buffer, offset, size - offset));\n if ((offset += value.byteLength) < size && !done) {\n return await readInto(reader, value.buffer, offset, size);\n }\n return { done, value: new Uint8Array(value.buffer, 0, offset) };\n}\n\nexport function fromDOMStream<TSource>(stream: ReadableStream<TSource>): AsyncIterableX<TSource>;\nexport function fromDOMStream<TSource extends ArrayBufferView>(\n stream: ReadableStream<TSource>,\n options: { mode: 'byob' }\n): AsyncIterableX<TSource>;\n\nexport function fromDOMStream(stream: ReadableStream, options?: { mode: 'byob' }) {\n return !options || options.mode !== 'byob'\n ? new AsyncIterableReadableStream(stream)\n : new AsyncIterableReadableByteStream(stream);\n}\n"]}
\No newline at end of file