npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

chunkify-stream

v1.0.0

Published

Combines multiple chunks of a stream to arrays of chunks

Downloads

16,126

Readme

chunkify-stream

chunkify-stream is a duplex stream that combines incoming chunks into arrays of chunks. Functions can be used to control how many chunks are combined and how they are combined.

Usage

The package exports a factory method that creates the duplex stream. The following options are supported:

  • combine: A callback function to control how the array of chunks is combined. The function will be called like this: combine(chunks), where the chunks is an array of the chunks. By default a function is used that passes the input array through.

  • split: A callback function to control when to split the chunks. The function will be called like this: split(current, last, chunks).

    • current is the current chunk, which is not yet part of the chunks.
    • last is the last chunk, which is already part of the chunks.
    • chunks is the array of all collected chunks.

    If the function returns true, chunks will be emitted and current goes into the next collection of chunks. By default a function is used that always returns false, so all chunks are combined into one big array.

Example

const chunkify = require('chunkify-stream')

const alphabeticWordList = chunkify({
  // combine all chunks to a comma separated string
  combine: chunks => chunks.join(', '),
  // split if the first character of the chunks is different
  split: (current, last) => current.slice(0, 1) !== last.slice(0, 1)
})

// write the output to the console
alphabeticWordList.on('data', chunk => console.log(chunk))

// feed the stream with alphabetic sorted animal names
alphabeticWordList.write('ant')
alphabeticWordList.write('ape')
alphabeticWordList.write('bat')
alphabeticWordList.write('bee')
alphabeticWordList.end()