browser-readablestream-to-it
Version:
Turns a browser readble stream into an async iterator
91 lines (56 loc) • 2.74 kB
Markdown
//img.shields.io/codecov/c/github/achingbrain/it.svg?style=flat-square)](https://codecov.io/gh/achingbrain/it)
[](https://github.com/achingbrain/it/actions/workflows/js-test-and-release.yml?query=branch%3Amain)
> Turns a browser readble stream into an async iterator
<!--
!IMPORTANT!
Everything in this README between "# About" and "# Install" is automatically
generated and will be overwritten the next time the doc generator is run.
To make changes to this section, please update the @packageDocumentation section
of src/index.js or src/index.ts
To experiment with formatting, please run "npm run docs" from the root of this
repo and examine the changes made.
-->
Allows treating a browser readable stream as an async iterator.
```javascript
import toIt from 'browser-readablestream-to-it'
import all from 'it-all'
const content = [0, 1, 2, 3, 4]
const stream = new ReadableStream({
start(controller) {
for (let i = 0; i < content.length; i++) {
controller.enqueue(content[i])
}
controller.close()
}
})
const arr = await all(toIt(stream))
console.info(arr) // 0, 1, 2, 3, 4
```
By default a readable stream will have [.cancel](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/cancel) called on it once it has ended or
reading has stopped prematurely.
To prevent this behaviour, pass `preventCancel: true` as an option:
```javascript
const arr = await all(toIt(stream, { preventCancel: true }))
console.info(arr) // 0, 1, 2, 3, 4
```
```console
$ npm i browser-readablestream-to-it
```
Loading this module through a script tag will make its exports available as `BrowserReadablestreamToIt` in the global namespace.
```html
<script src="https://unpkg.com/browser-readablestream-to-it/dist/index.min.js"></script>
```
- <https://achingbrain.github.io/it/modules/browser_readablestream_to_it.html>
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](https://github.com/achingbrain/it/blob/main/packages/browser-readablestream-to-it/LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT ([LICENSE-MIT](https://github.com/achingbrain/it/blob/main/packages/browser-readablestream-to-it/LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
[![codecov](https: