@adrien.pgd/nodejsutilities

1.0.2 • Public • Published

Table of contents

All Classes

Classes verison
Queue v1.1
Tasks v1.0

Quick Start

import { Queue } from '@adrien.pgd/nodejsutilities'

const my_queue = new Queue();

/*...*/

Or

import utilities from '@adrien.pgd/nodejsutilities'

const my_queue = new utilities.Queue();

/*...*/

Details

Queue

Basic implementation of a queue.

Class verison event emitter unit tested
Queue v1.1 yes yes

Methods

name description Error (thow an error)
enqueue Add an item at the end of the queue if the item do not match the format checker
dequeue Remove the first item and return it if the queue is empty
peek return the first item of the queue if the queue is empty
length Return the length of the queue
is_empty return if the queue is empty or not

emitter

signal data description
enqueue (new_item) Sent when an element is enqueue
dequeue (deleted_item) Sent when an element is dequeue

Example

import { Queue } from '@adrien.pgd/nodejsutilities'

const my_queue = new Queue();

my_queue.on("enqueue", new_item => {
    console.log(`New element added at the end of the queue. Element(${new_item})`)
})

my_queue.on("dequeue", deleted_item => {
    console.log(`First element of the queue have been removed. Element(${deleted_item})`)
})

my_queue.enqueue(5); // my_queue = {5}
const value = my_queue.peek(); // value = 5
const value2 = my_queue.dequeue(); // value2 = 5; my_queue = {}

Tasks

Implementation of a Tasks system based on a queue. The purpose of this class is to provide a queue that will receive functions and executed them by order. Example of use : If you need to chain advertising messages.

Class verison event emitter unit tested
Tasks v1.0 yes yes

Methods

name description Error (thow an error)
add_task Add a task in the queue if the task is not a function

emitter

signal data description
started (task_uuid) Sent when a task is execute
finished (task_uuid) Sent when a task is finished

Example

import { Tasks } from '@adrien.pgd/nodejsutilities'

// delay simulation
function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

const my_tasks = new Tasks();
let last_ad_uuid;

my_tasks.on("finished", uuid => {
    if (last_ad_uuid === uuid)
        console.log(`Next ad`);
    else 
        console.log(`end`);
})

tasks.add_task(async ()=>{await sleep(3000); console.log("First add !")})
tasks.add_task(async ()=>{await sleep(3000); console.log("Second add !")})
last_ad_uuid = tasks.add_task(async ()=>{await sleep(3000); console.log("Last add !")})

Readme

Keywords

Package Sidebar

Install

npm i @adrien.pgd/nodejsutilities

Weekly Downloads

3

Version

1.0.2

License

MIT

Unpacked Size

12.9 kB

Total Files

10

Last publish

Collaborators

  • adrien.pgd