0.2.0 • Published 5 years ago
queue-pool v0.2.0
Queue-Pool
Pool works as queue or stack.
Queue-Pool Is pool of elements, implements major Array methods. With ability to auto-adjust length.
Why?
If you handle a group of incoming streams of chunks, process them in a pool, there is a need to release them in stack or queue order.
Getting Started
npm install queue-poolUsage
import QPool from "queue-pool";
const qpool = new QPool(options);options
initfor custom initialize, instead of empty string as default.maxIna number, for max size allowed in pool.Defaultis 2.
Methods
getlengthelementsSizean array contains size of each element in the pool.elementsLengtha number of elements in.flushunshiftpushshiftpopprocesspush and adjust the size.process(input, type, cb)- type: stack or queue.
Defaultis queue. - cb(get): optional.
In case you made several
pushcalls passing the allowed number set inmaxIn. It autoshiftin case of queue/popin case of stack over elements and thenpushthe new one. Using this method you guarantee that you are not passing the number of elements you set.- type: stack or queue.
Example
const qpool = new QPool();
qpool.push("pigs, "); // pigs,
qpool.push("goats, "); // pigs, goats,
qpool.push("sheep."); // pigs, goats, sheep.
qpool.shift(); // goats, sheep.
qpool.pop(); // goats,
qpool.unshift("sheep, "); // sheep, goats,
qpool.elementsLength(); // 2
qpool.elementsSize(); // [7 , 7]
qpool.length(); // 14with queue
const qpool = new QPool({ maxIn: 5 });
for (let i = 0; i < 10; i++) qpool.push(`${i} `);
qpool.get(); // 0 1 2 3 4 5 6 7 8 9
qpool.process("last-element");
qpool.get(); // 6 7 8 9 last-elementwith stack and callback
const qpool = new QPool({ maxIn: 5 });
for (let i = 0; i < 10; i++) qpool.push(`${i} `);
qpool.get(); // 0 1 2 3 4 5 6 7 8 9
qpool.process("last-element", "stack", (get) => {
console.log(get); // 0, 1, 2, 3 last-element
});Tests
testLicense
This project is licensed under the MIT License