rangr
v0.1.0 range set
rangr is a tool to manage ranges and sets. It's inspired from the LeetCode's Merge Interval problem.
⚠️ NOT ready for production use.
Usage
import Rangr from 'rangr';
const range: Rangr = new Rangr([ [1,3], [2,6], [8,10], [15,18] ]);
console.log(range.toString());
// [1,6],[8,10],[15,18]
range.add([ [ 10, 11 ], [11, 20] ]);
console.log(range.toString());
// [1,6],[8,20]
Features
Array output
To get ranges as an array, use .toArray()
method provided.
Example:
const range: Rangr = new Rangr([ [1,3], [2,6] ]);
const arr = range.toArray(); // [ [ 1, 6 ] ]
Iterable output
To get ranges as an iterable, use .toIterable()
method provided.
Example:
const range: Rangr = new Rangr([ [1,3], [2,6] ]);
const rangeIterator = range.toIterable();
rangeIterator.next(); // { value: [ 1, 6 ], done: false }
rangeIterator.next(); // { value: undefined, done: true }
Support for ESM and CommonJS
rangr supports both ECMAScript Modules and CommonJS using Conditional Exports provided by Node.js.
CommonJS
const Rangr = require('rangr');
ESM
import Rangr from 'rangr';
Contributions
The package is not very performant in managing th ranges and lacks a rich API. Contributions in the form of issues and PRs are welcome! 🙌🏽
Install
npm i rangr
Test
npm test