https://github.com/dojo/streams
:rocket: Dojo 2 - WHATWG compliant streams.
https://github.com/dojo/streams
Last synced: 5 months ago
JSON representation
:rocket: Dojo 2 - WHATWG compliant streams.
- Host: GitHub
- URL: https://github.com/dojo/streams
- Owner: dojo
- License: other
- Archived: true
- Created: 2016-12-02T14:30:23.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-04-28T15:02:18.000Z (about 8 years ago)
- Last Synced: 2025-10-19T23:43:00.054Z (8 months ago)
- Language: TypeScript
- Homepage: http://dojo.io
- Size: 357 KB
- Stars: 4
- Watchers: 19
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# @dojo/streams
[](https://travis-ci.org/dojo/streams)
[](https://codecov.io/gh/dojo/streams)
[](https://badge.fury.io/js/%40dojo%2Fstreams)
An implementation of the [WHATWG Streams Spec](https://streams.spec.whatwg.org/).
## Usage
To use `@dojo/streams`, install the package along with its required peer dependencies:
```bash
npm install @dojo/streams
# peer dependencies
npm install @dojo/core
npm install @dojo/has
npm install @dojo/shim
```
## Features
- [ReadableStream](#readablestream)
- [WritableStream](#writablestream)
Two main objects in this module are `ReadableStream` and `WritableStream`.
### ReadableStream
A [readable stream](https://streams.spec.whatwg.org/#rs-model) represents a source of data, from which you can read.
```typescript
const reader = readableStream.getReader();
reader.read().then(
({ value, done }) => {
if (done) {
console.log("The stream was already closed!");
} else {
console.log(value);
}
},
e => console.error("The stream became errored and cannot be read from!", e)
);
```
### WritableStream
A [writable stream](https://streams.spec.whatwg.org/#ws-model) represents a destination for data, into which you can write.
```typescript
const writer = writableStream.getWriter();
writer.write('data');
writer.close();
```
## How do I contribute?
We appreciate your interest! Please see the [Dojo 2 Meta Repository](https://github.com/dojo/meta#readme) for the
Contributing Guidelines and Style Guide.
### Installation
To start working with this package, clone the repository and run `npm install`.
In order to build the project run `grunt dev` or `grunt dist`.
### Testing
Test cases MUST be written using [Intern](https://theintern.github.io) using the Object test interface and Assert assertion interface.
90% branch coverage MUST be provided for all code submitted to this repository, as reported by istanbul’s combined coverage results for all supported platforms.
To test locally in node run:
`grunt test`
To test against browsers with a local selenium server run:
`grunt test:local`
To test against BrowserStack or Sauce Labs run:
`grunt test:browserstack`
or
`grunt test:saucelabs`
## Licensing information
© 2004–2018 [JS Foundation](https://js.foundation/) & contributors. [New BSD](http://opensource.org/licenses/BSD-3-Clause) license.