circulator
v1.2.0
Published
Infinite circular iterator that can be consumed from the current position by Array.from() or for-of
Downloads
13
Maintainers
Readme
Circulator
Circular iteration for a list of values; step forward or backward with a simple API. Lightweight, ES2015 generator-based implementation.
Installation
npm install --save circulator
Usage
const { Circulator } = require('circulator')
const c = new Circulator(['A', 'B', 'C'])
// Methods
c.current() // -> 'A'
c.next() // -> 'B'
c.step(2) // -> 'A' (wrap to start)
c.prev() // -> 'C' (wrap to end)
c.step(-1) // -> 'B'
// Properties
c.size // -> 3
c.cycle // The generator used for cycling
// Consuming the circulator returns elements starting from the current (last returned) position
[...c] // -> ['b', 'c', 'a']
The basic generator object can be used separately:
const { Cycle } = require('circulator')
const g = Cycle([1, 2, 3])
g.next().value // -> 1
Notes
- Includes TypeScript type definitions
- Requires ES2015 generator support to run without Babel (Node.js >= 5.x)