pg-numrange v1.0.2
PG NumRange
The NumRange class is a JavaScript implementation for working with numerical ranges, which allows you to define a range with lower and upper bounds and perform various operations on these ranges. This class is designed to be flexible and user-friendly for managing and manipulating numeric intervals.
Table of Contents
Features
- Create and manage numerical ranges with ease.
- Check if a number falls within the bounds of a range.
- Calculate the union and intersection of two numerical ranges.
- Convert a range to a PostgreSQL-compatible string.
Usage
Here are some examples of how to create and work with NumRanges
const NumRange = require('pg_numrange')
// Create a NumRange object with inclusive bounds.
const range1 = new NumRange(1, 10, true, true)
// Check if a number is within the range.
const number = 5
if (range1.contains(number)) {
console.log(`${number} is within the range.`)
} else {
console.log(`${number} is outside the range.`)
}
// Calculate the union of two ranges.
const range2 = NumRange.parse('[5,15]')
const unionRange = range1.union(range2)
console.log('Union Range:', unionRange.toString())
// Calculate the intersection of two ranges.
const intersectionRange = range1.intersection(range2)
if (intersectionRange) {
console.log('Intersection Range:', intersectionRange.toString())
} else {
console.log('The ranges do not intersect.')
}Class Properties
lower: The lower bound of the numerical range. This property represents the lower limit of the range.
upper: The upper bound of the numerical range. This property represents the upper limit of the range.
lowerInclusive: A boolean value indicating whether the lower bound is inclusive when working with ranges. When set to
true, the lower bound is inclusive, meaning values equal to the lower bound are considered within the range.upperInclusive: A boolean value indicating whether the upper bound is inclusive when working with ranges. When set to
true, the upper bound is inclusive, meaning values equal to the upper bound are considered within the range.
Class Methods
constructor(lower, upper, lowerInclusive, upperInclusive): Create a
NumRangeobject with specified lower and upper bounds, and inclusive/exclusive flags. This method initializes aNumRangeinstance with the provided boundaries and options.parse(rangeString): Parse a range string and create a
NumRangeobject. This static method is used to create aNumRangeinstance based on a range string in a specific format.contains(number): Check if a number falls within the bounds of the range. This method returns
trueif the specified number is within the range, taking into account the inclusive or exclusive bounds.union(otherRange): Calculate the union of two
NumRangeobjects. This method returns a newNumRangeobject that encompasses both input ranges, combining them into a single range.intersection(otherRange): Calculate the intersection of two
NumRangeobjects. This method returns a newNumRangeobject representing the common range between the two input ranges. If there is no intersection, it returnsnull.toString(): Convert the
NumRangeobject to a PostgreSQL-compatible string. This method returns a string representing theNumRangeobject in a format suitable for PostgreSQL database operations.