@slimio/queue
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

Queue

Maintenance GitHub license V1.0 Known Vulnerabilities

SlimIO - Simple Queue system

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @slimio/queue
# or
$ yarn add @slimio/queue

Usage exemple

const Queue = require("@slimio/queue");
const queue = new Queue();

queue.enqueue("foo", "bar");
console.log(queue.idLenght("foo")); // 1
console.log(queue.dequeue("foo")); // "bar"

API

declare namespace Queue {
    type id = string|number|symbol;
}

Queue.enqueue(id: Queue.id, value: any): void;

Enqueue data in a queue

const queue = new Queue();

queue.enqueue(100, 1);
queue.enqueue(100, 2);

queue.enqueue("foo", "bar");

Queue.dequeue(id: Queue.id): any;

Dequeue the first data that was enqueued in a queue

const queue = new Queue();

queue.enqueue(100, 1);
queue.enqueue("foo", "bar");

console.log(queue.dequeue(100)); // 1
console.log(queue.dequeue("foo")); // "bar"

Queue.dequeueAll(id: Queue.id): Iterator;

Dequeue all data that was enqueued in a queue

const queue = new Queue();

queue.enqueue(100, 1);
queue.enqueue(100, 2);
queue.enqueue(100, 3);

const data = [...queue.dequeueAll(100)];
console.log(data); // [1, 2, 3]

Queue.has(id: Queue.id): boolean;

Check if a QueueID exist

const queue = new Queue();

queue.enqueue("foo", "bar");

console.log(queue.has("foo")); // true
console.log(queue.has("fo")); // false

Queue.ids(): string[];

Get all queues keys

const queue = new Queue();

queue.enqueue(100, 1);
queue.enqueue("foo", "bar");
queue.enqueue("test", 20);

console.log(queue.ids()); // [100, "foo", "test"]

Queue.idLength(id: Queue.id): Number;

Return the number of elements of a given QueueID.

const queue = new Queue();

queue.enqueue("test", 20);
queue.enqueue("test", 21);
queue.enqueue("test", 22);

console.log(queue.idLength("test")); // 3

LICENCE

MIT

Readme

Keywords

Package Sidebar

Install

npm i @slimio/queue

Weekly Downloads

1

Version

0.2.1

License

MIT

Unpacked Size

10.6 kB

Total Files

5

Last publish

Collaborators

  • fraxken
  • alexandre.malaj