democracyos-bounds v1.0.0
bounds
Mixin for checking if value is inside or outside of bounds You can use Bounds for any objects for
which you can define compare function (dates, vectors etc.)
In addition to regular range checking Bounds supports reversed ranges: if
min is bigger than max it considers values outside ot the max, min range as valid.
Installation
$ component install code42day/boundsor
$ npm install boundsAPI
.compare(fn)
Sets comparison function. fn should take 2 arguments and behave like sort comparison function i.e.
return 0 if items are equal, -1 if the first is smaller than the second, 1 is the first is bigger
than the second.
.min(v)
Set lower bound (inclusive) to v
.max(v)
Set upper bound (inclusive) to v
.in(v)
Return true if v is in bounds i.e. min <= v <= max
.out(v)
Return true if v is outside of bounds i.e. v < min OR max < v
.before(v)
Return true if v < min
.after(v)
Return true if v > max
.valid(v)
For regular ranges it's the same as in. For reversed ranges it considers as valid values that are
outside of the range (it's still inclusive so min and max are still considered valid)
.restrict(v)
Returns the passed value for valid values. For invalid values returns the closest boundary (min
or max). restrict only works for reverse ranges if distance function is defined.
.distance(fn)
Optional distance function: it's only used when calculating proper restriction for reversed ranges.
If restricted value is closed to min than to max, then the min is returned.
License
MIT
10 years ago
