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

qulee

v1.0.7

Published

JavaScript library implementation of a Queue - with extra power

Downloads

2

Readme

qulee

JavaScript library implementation of a queue with extra power

Usage

Using qulee is very simple. Just add the script tag with the relevant reference for qulee.js or qulee.min.js file.
Or if on Node just require the module as shown in the examples

I first found it useful to implement a situation where I wanted http calls (promises) to get executed in a synchronized fashion.

Installation

Using CDN:

<script src="https://unpkg.com/qulee/dist/qulee.min.js"></script>

Using NPM:

npm install qulee --save

Api

qulee.enqueue(item) - add an item to the queue.
qulee.dequeue() - extract an item from the queue.
qulee.clear() - clears the queue
qulee.size() - return queue size
qulee.current() - return the current/last dequeued object
qulee.archive() - archives the current/last dequeued object
qulee.lock() - locks the queue from enqueuing new objects
qulee.unlock() - un-locks the queue from enqueuing new objects
qulee.last() - returns the last object in the queue
qulee.createNamedQueue(name) - creates a new queue by name - for example you can create a new queue named 'myQueue' and call it by qulee['myQueue'];
qulee.setAllowDuplicate(isAllowed) - set if to allowed to queue the same object more than once. default is false qulee.executeOnQueue(callback,doDequeue) - execute the call back on each of the object in the queue (callback(obj)). If doDequeue is set to true, each object will be removed from queue (default is false)

Events

qulee.onQueue(callback) - Add a call back to be executed on queue event
qulee.onDequeue(callback) - Add a call back to be executed on dequeue event
qulee.onDuplicate(callback) - Add a call back to be executed on queueing a duplicated event
qulee.onLock(callback) - Add a call back to be executed when trying to queue an object when the queue is locked

Examples

Simple example:

var qulee = require('qulee');

qulee.enqueue('Hello ');
qulee.enqueue('World ');
qulee.enqueue('!');

while (qulee.dequeue()){
    console.log(qulee.current());
}
// will output:
// Hello
// World
// !

Execute callback on each item in queue:

var qulee = require('qulee');

qulee.enqueue({ value: 1 });
qulee.enqueue({ value: 2 });
qulee.enqueue({ value: 3 });

qulee.executeOnQueue(function(item){
    item.value *= 2; // multiply each value by 2
});

while (qulee.dequeue()){
    console.log(qulee.current().value);
}

// output: 2 4 6