1.1.1 • Published 2 years ago

block-iterator v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

block-iterator

Transform input into equally-sized chunks as output.

A majorly simplified version of block-stream2. Dependency free and very fast.

Usage

import blockIterator from 'block-iterator'
import { Readable } from 'streamx'

const stream = fs.createReadStream(__dirname + '/letters.txt')

const asyncIterator = blockIterator(stream, 16, { zeroPadding: true })
const stream = Readable.from(asyncIterator)

stream.pipe(process.stdout)

// or

for await (const letters of blockIterator(stream, { size: 16, zeroPadding: true })) { // top level await
  console.log(letters)
}

Yields:

cat cag car cet
ceg cer cit cig
cir cot cog cor
cut cug cur dat
dag dar det deg
der dit dig dir
dot dog dor dut
dug dur fat fag
far fet feg fer
fit fig fir fot
fog for fut fug
fur\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00

Methods

import blockIterator from 'block-iterator'

const b = blockIterator(opts)

const b = blockIterator(size, opts)

Create a new async iterator 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 do:

npm install block-iterator

License

MIT