1.1.0 • Published 4 years ago

com.recoyxgroup.javascript.range v1.1.0

Weekly downloads
6
License
ISC
Repository
github
Last release
4 years ago

JavaScriptRange

Generic Range object for JavaScript. It can be used with Number, BigInt and types with explicit implementation.

Example

import Range from 'com.recoyxgroup.javascript.range';

for (let i of Range(0, 10))
    console.log(i);
console.log(0 in Range(0, 10)); // true
console.log(10 in Range(0, 10)); // false
console.log(10 in Range(10, -1, -1)); // true
console.log(0 in Range(10, -1, -1)); // true
console.log(-1 in Range(10, -1, -1)); // false

Support for non Number endpoints

import Range from 'com.recoyxgroup.javascript.range';

class C0 {
    constructor(v) {
        this._value = v instanceof C0 ? v._value : Number(v);
    }

    [Range.LessThan](arg) { return this._value < C(arg)._value }
    [Range.GreaterThan](arg) { return this._value > C(arg)._value }
    [Range.LessThanOrEquals](arg) { return this._value <= C(arg)._value }
    [Range.GreaterThanOrEquals](arg) { return this._value >= C(arg)._value }
    valueOf() {
        return this._value;
    }
}

// Allow C to be called with a Number.
let C = new Proxy(C0, {
    apply(target, thisObject, [v]) {
        return new C0(v);
    },
});

Reference

Range(start = 0, end = 0, step = undefined):Range
Range(str:String):Range

Example: Range('0-9')

[object Range].start

Read-only starting point.

[object Range].end

Read-only ending point.

[object Range].step

Read-only step unit.

[object Range].from

Same as [object Range].start.

[object Range].to

Same as [object Range].end.

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago