Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsumners/cavalcade
A set of queue structures for Node.js
https://github.com/jsumners/cavalcade
Last synced: about 1 month ago
JSON representation
A set of queue structures for Node.js
- Host: GitHub
- URL: https://github.com/jsumners/cavalcade
- Owner: jsumners
- Created: 2016-06-14T20:08:35.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-06-14T20:09:17.000Z (over 8 years ago)
- Last Synced: 2024-09-14T04:22:05.036Z (2 months ago)
- Language: JavaScript
- Size: 5.86 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Contributing: Contributing.md
Awesome Lists containing this project
README
# cavalcade
*cavalcade* provides a set of queue-like data structures.
## Install
```bash
$ npm install --save cavalcade
```## Example
```javascript
const cavalcade = require('cavalcade')
const fifoQueue = cavalcade.fifoQueue(4, [1, 2, 3, 4])fifo.size // 4
fifo.length // 4fifo.pop() // 1
fifo.size // 4
fifo.length // 3
// queue: [null, 4, 3, 2]fifo.push(5)
// queue: [5, 4, 3, 2]fifo.push(6)
// queue: [6, 5, 4, 3]fifo.pop() // 3
```## Queues
+ `cavalcade.fifoQueue(size: number, initial: array)`:
Provides a "first in first out" queue of a given `size` (or `16` slots) with
an optional set of `initial` values. Items are automatically dequeued when
the queue is full and a new item is added.Supports the following properties/methods:
+ `size`: the number or slots allocated to the queue. This will not change
after initialization.
+ `length`: the number of items in the queue. This will change with
enqueues and dequeues.
+ `push(item)`: adds an item to the queue.
+ `pop()`: retrieves and removes the first item in the queue. Returns `null`
if there are no items available.
+ `values()`: returns an iterator that can be used to examine the values
in the queue without modifying the queue. Note: if the queue changes while
you are iterating it the values may not be what you are expecting.
+ `[@@iterator]`: returns the same iterator as `values()`+ `cavalcade.lifoQueue(size: number, initial: array)`:
Provides a "last in first out" queue, or stack, of a given `size` (or `16`
slots) with an optional set of `initial` values. Items are automatically
dequeued when the queue is full and a new item is added.Supports the following properties/methods:
+ `size`: the number or slots allocated to the queue. This will not change
after initialization.
+ `length`: the number of items in the queue. This will change with
enqueues and dequeues.
+ `push(item)`: adds an item to the queue.
+ `pop()`: retrieves and removes the first item in the queue. Returns `null`
if there are no items available.
+ `values()`: returns an iterator that can be used to examine the values
in the queue without modifying the queue. Note: if the queue changes while
you are iterating it the values may not be what you are expecting.
+ `[@@iterator]`: returns the same iterator as `values()`## License
[MIT License](http://jsumners.mit-license.org/)