time-ordered-set

Efficiently maintain a set of nodes ordered by the time they were added to the set

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
time-ordered-set
1.0.24 years ago6 years agoMinified + gzip package size for time-ordered-set in KB

Readme

time-ordered-set
Efficiently maintain a set of nodes ordered by the time they were added to the set
npm install time-ordered-set

build status

Usage

var set = require('time-ordered-set')
var s = set()

// add 3 nodes

s.add({
  hello: 'world'
})

var node = s.add({
  hello: 'welt'
})

s.add({
  hello: 'verden'
})

// re-add the 2nd one

s.add(node)
console.log(s.toArray().map(node => node.hello)) // ['world', 'verden', 'welt']

API

var s = set()

Create a new set

node = s.add(node)

Add a new node to the set. Will add the properties node.next and node.prev to the node. Re-adding the same node will move to the latest node.

node = s.remove(node)

Remove a node. Will set node.next and node.prev to null.

bool = s.has(node)

Check if a node has been added.

var array = s.toArray(maxCount)

Get an ordered array out of all the nodes, ordered from oldest to newest. Set maxCount if you only want to get a subset.

s.oldest

Property containing the oldest node.

s.latest

Property containing the newest node.

s.length

Property containing how many nodes are in the set.

License

MIT