UNPKG

queue-lit

Version:

queue-lit is a tiny queue data structure in case you `Array#push()` or `Array#shift()` on large arrays very often

89 lines (57 loc) 1.63 kB
# queue-lit This package is a tiny queue data structure in case you `Array#push()` or `Array#shift()` on large arrays very often. `Array#shift()` has linear time complexity `O(n)` while `Queue#push()` has constant time complexity `O(1)`. ## Installation ```bash $ npm i queue-lit # or $ yarn add queue-lit ``` ## Usage ```js import { Queue } from 'queue-lit'; const queue = new Queue(); queue.push('Hello'); queue.push('World'); console.log(queue.size); // => 2 console.log(...queue); // => 'Hello World' console.log(queue.pop()); //=> 'Hello' console.log(queue.pop()); //=> 'World' ``` ## API ### `queue = new Queue()` The instance is an [`Iterable`], which means you can iterate over the queue front to back with a `for...of` loop, or use spreading to convert the queue to an array. #### `.push(value)` Adds one element to the end of the queue and returns the new length of the queue. This method changes the size of the queue. #### `.pop()` Pop removes the last element from the queue and returns that element. This method changes the size of the queue. Returns `undefined` if the queue is empty. #### `.clear()` Clears the queue and removes all elements. This method changes the size of the queue. #### `.size` Static method that returns the size of the queue. ## Development (1) Install dependencies ```bash $ npm i ``` (2) Run initial validation ```bash $ ./Taskfile.sh validate ``` (3) Start developing. See [`./Taskfile.sh`](./Taskfile.sh) for more tasks to help you develop. --- [`Iterable`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols