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

actionbuffer

v1.0.0

Published

Push elements into a queue and invoke a callback with the queued elements after a timeout

Downloads

19

Readme

actionbuffer

Build Status Coverage Code Climate NPM NPM

Push elements into a queue and invoke a callback with the queued elements after a timeout.

Install

npm install --save actionbuffer

Usage

var ActionBuffer = require('actionbuffer');
var buffer = new ActionBuffer((items)=> {
    console.log(items.join('-'))
}, 100); // Set timeout to 100 (default: 1000)

buffer.push('abc');
buffer.push('123');
setTimeout(()=> {
    buffer.push('def');
}, 15)
setTimeout(()=> {
    buffer.push('456');
}, 35)


// After 100ms --------------------------
"abc-123-def-456" // <- console

API

ActionBuffer(callback[, timeout])

Creates a new ActionBuffer instance. The provided callback will be invoked after a timeout with the queued elements passed as the 1st argument. Timeout argument is optional and defaults to ActionBuffer.timeoutDefault.

ActionBuffer.timeoutDefault = 1000

The default value that will be used as the timeout for ActionBuffer instances with no timeout specified. Defaults to 1000ms.

actionBuffer.push(data)

Push data elements into the buffer. The callback timer will begin counting down if the buffer was empty prior to adding the new data element.

actionBuffer.run()

Manually depelete the current buffer and invoke the provided callback with the buffer's elements. This method is the method that gets automatically invoked after the buffer's timeout ends. The buffer will now have 0 elements and will await new data elements before starting the timeout again.

actionBuffer.stop()

Halt the current timer (if any), empty out the buffer, and dismantle the instance entirely. After this call, the buffer deactivates and will not accept data elements anymore.

License

MIT