You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
3 years ago
|
# block-stream2
|
||
|
|
||
|
transform input into equally-sized chunks as output
|
||
|
|
||
|
streams3 version of
|
||
|
[block-stream](https://npmjs.org/package/block-stream)
|
||
|
|
||
|
[![build status](https://secure.travis-ci.org/substack/block-stream2.png)](http://travis-ci.org/substack/block-stream2)
|
||
|
|
||
|
# example
|
||
|
|
||
|
``` js
|
||
|
const BlockStream = require('block-stream2');
|
||
|
const through = require('through2');
|
||
|
|
||
|
process.stdin
|
||
|
.pipe(new BlockStream({ size: 16, zeroPadding: true }))
|
||
|
.pipe(through((buf, enc, next) => {
|
||
|
const str = buf.toString().replace(/[\x00-\x1f]/g, chr);
|
||
|
console.log(`buf[${buf.length}]=${str}`);
|
||
|
next();
|
||
|
}))
|
||
|
;
|
||
|
function chr (s) { return `\\x${pad(s.charCodeAt(0).toString(16),2)}` }
|
||
|
function pad (s, n) { return Array(n - s.length + 1).join('0') + s }
|
||
|
```
|
||
|
|
||
|
```
|
||
|
$ echo {c,d,f}{a,e,i,o,u}{t,g,r} | node example/stream.js
|
||
|
buf[16]=cat cag car cet
|
||
|
buf[16]=ceg cer cit cig
|
||
|
buf[16]=cir cot cog cor
|
||
|
buf[16]=cut cug cur dat
|
||
|
buf[16]=dag dar det deg
|
||
|
buf[16]=der dit dig dir
|
||
|
buf[16]=dot dog dor dut
|
||
|
buf[16]=dug dur fat fag
|
||
|
buf[16]=far fet feg fer
|
||
|
buf[16]=fit fig fir fot
|
||
|
buf[16]=fog for fut fug
|
||
|
buf[16]=fur\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
|
||
|
```
|
||
|
|
||
|
# methods
|
||
|
|
||
|
``` js
|
||
|
const BlockStream = require('block-stream2');
|
||
|
```
|
||
|
|
||
|
## const b = new BlockStream(opts)
|
||
|
## const b = new BlockStream(size, opts)
|
||
|
|
||
|
Create a new transform stream `b` that outputs chunks of length `size` or
|
||
|
`opts.size`.
|
||
|
|
||
|
When `opts.zeroPadding` is false, do not zero-pad the last chunk.
|
||
|
|
||
|
# install
|
||
|
|
||
|
With [npm](https://npmjs.org) do:
|
||
|
|
||
|
```
|
||
|
npm install block-stream2
|
||
|
```
|
||
|
|
||
|
# license
|
||
|
|
||
|
MIT
|