https://github.com/pirxpilot/bounds
Mixin for checking if value is inside or outside of bounds
https://github.com/pirxpilot/bounds
Last synced: about 1 year ago
JSON representation
Mixin for checking if value is inside or outside of bounds
- Host: GitHub
- URL: https://github.com/pirxpilot/bounds
- Owner: pirxpilot
- License: mit
- Created: 2013-02-21T05:04:38.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2024-01-31T09:33:09.000Z (over 2 years ago)
- Last Synced: 2024-08-09T16:53:02.087Z (almost 2 years ago)
- Language: JavaScript
- Size: 18.6 KB
- Stars: 0
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Changelog: History.md
- License: License.txt
Awesome Lists containing this project
README
[![NPM version][npm-image]][npm-url]
[![Build Status][build-image]][build-url]
# 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
$ npm install bounds
## API
### .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
[npm-url]: https://npmjs.org/package/bounds
[npm-image]: https://img.shields.io/npm/v/bounds
[build-url]: https://github.com/pirxpilot/bounds/actions/workflows/check.yaml
[build-image]: https://img.shields.io/github/actions/workflow/status/pirxpilot/bounds/check.yaml?branch=main