Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/binded/common-streams
common-streams
https://github.com/binded/common-streams
Last synced: about 4 hours ago
JSON representation
common-streams
- Host: GitHub
- URL: https://github.com/binded/common-streams
- Owner: binded
- License: mit
- Created: 2016-09-01T18:37:55.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2016-10-28T04:58:51.000Z (about 8 years ago)
- Last Synced: 2024-10-29T00:40:01.303Z (20 days ago)
- Language: JavaScript
- Size: 2.29 MB
- Stars: 0
- Watchers: 9
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# common-streams
[![Build Status](https://travis-ci.org/blockai/common-streams.svg?branch=master)](https://travis-ci.org/blockai/common-streams)
A collection of useful streams.
## Install
```bash
npm install --save common-streams
```Requires Node v6+
## Usage
See [./test](./test) directory for more usage examples.
Example:
```javascript
import { HashStream, SizeStream } from 'common-streams'
import concat from 'concat-stream'const rs = getReadStream() // e.g. fs.createReadStream(...)
const ws = getWriteStream() // e.g. fs.createWriteStream(...)const sha1Stream = new HashStream('sha1')
const sizeStream = new SizeStream()rs.pipe(sha1Stream).pipe(concat(([{ digest }]) => {
console.log(digest, '=', '4129def2ea7cb7945ddfbb785969898fca2e34c3')
}))
rs.pipe(sizeStream).pipe(concat(([{ size }]) => {
console.log(size, '=', 2447774)
}))
rs.pipe(ws)
```### HashStream
Transform stream that operates in object mode and returns a single `{ digest: 'hash digest' }` object.
`new HashStream(algorithm, [, opts])`
**algorithm**: any algorithm supported by [crypto.createHash](https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm)
**opts.encoding**: any encoding supported by [hash.digest](https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding). Defaults to `hex`.
### SizeStream
Transform stream that operates in object mode and returns a single `{
size: 1000 }` object where the size is an integer representing the total
size in bytes of the stream.`new SizeStream()`
If passed a callback `new SizeStream(cb)` it will just act as a
PassThrough stream and call the callback when it's done.### RandomStream
`new RandomStream(max)`
Readable stream that emits `max` random bytes before ending.
### DiscardStream
`new DiscardStream(start)`
Swallows all bytes until `start` is reached.
### MeterStream
`new MeterStream(max)`
See [meterstream](https://github.com/blockai/meterstream)