@hyperfrontend/versioning/semver/comparecompare
Version-comparison primitives: equality, strict ordering, range satisfaction, and sort utilities.
compare, eq, lt, lte, gt, gte, and neq are the basic ordering operators over SemVer values. satisfies, satisfiesComparator, maxSatisfying, and minSatisfying answer range-membership and best-fit questions against Range and Comparator shapes. sort and sortDescending produce stable orderings; max and min are the convenience reductions. Behavior is fully spec-compliant with semver precedence, including the prerelease tie-breaker rules.
API Reference
ƒ Functions
Returns
-1 | 0 | 1Example
Compare two semantic versions
compare(parseVersion('1.0.0'), parseVersion('2.0.0')) // -1
compare(parseVersion('1.0.0'), parseVersion('1.0.0')) // 0
compare(parseVersion('2.0.0'), parseVersion('1.0.0')) // 1Returns
booleanExample
Check if two versions are equal
eq(parseVersionStrict('1.0.0'), parseVersionStrict('1.0.0')) // => true
eq(parseVersionStrict('1.0.0'), parseVersionStrict('1.0.1')) // => falseReturns
booleanExample
Check if version a is greater than b
gt(parseVersionStrict('2.0.0'), parseVersionStrict('1.0.0')) // => true
gt(parseVersionStrict('1.0.0'), parseVersionStrict('2.0.0')) // => falseReturns
booleanExample
Check if version a is greater than or equal to b
gte(parseVersionStrict('2.0.0'), parseVersionStrict('1.0.0')) // => true
gte(parseVersionStrict('1.0.0'), parseVersionStrict('1.0.0')) // => trueReturns
booleanExample
Check if version a is less than b
lt(parseVersionStrict('1.0.0'), parseVersionStrict('2.0.0')) // => true
lt(parseVersionStrict('2.0.0'), parseVersionStrict('1.0.0')) // => falseReturns
booleanExample
Check if version a is less than or equal to b
lte(parseVersionStrict('1.0.0'), parseVersionStrict('1.0.0')) // => true
lte(parseVersionStrict('1.0.0'), parseVersionStrict('2.0.0')) // => trueParameters
| Name | Type | Description |
|---|---|---|
§versions | unknown | Array of versions |
Returns
SemVerExample
Get the maximum version from an array
const versions = [parseVersionStrict('1.0.0'), parseVersionStrict('2.0.0')]
max(versions) // => { major: 2, minor: 0, patch: 0, ... }
max([]) // => nullParameters
Returns
SemVerExample
Find the maximum version satisfying a range
const versions = ['1.0.0', '1.5.0', '2.0.0'].map(parseVersionStrict)
maxSatisfying(versions, parseRangeStrict('^1.0.0'))
// => { major: 1, minor: 5, patch: 0, ... }Parameters
| Name | Type | Description |
|---|---|---|
§versions | unknown | Array of versions |
Returns
SemVerExample
Get the minimum version from an array
const versions = [parseVersionStrict('1.0.0'), parseVersionStrict('2.0.0')]
min(versions) // => { major: 1, minor: 0, patch: 0, ... }
min([]) // => nullParameters
Returns
SemVerExample
Find the minimum version satisfying a range
const versions = ['1.0.0', '1.5.0', '2.0.0'].map(parseVersionStrict)
minSatisfying(versions, parseRangeStrict('^1.0.0'))
// => { major: 1, minor: 0, patch: 0, ... }Returns
booleanExample
Check if two versions are not equal
neq(parseVersionStrict('1.0.0'), parseVersionStrict('2.0.0')) // => true
neq(parseVersionStrict('1.0.0'), parseVersionStrict('1.0.0')) // => falseReturns
booleanExample
Check if version satisfies a range
satisfies(parseVersion('1.2.3'), parseRange('^1.0.0')) // true
satisfies(parseVersion('2.0.0'), parseRange('^1.0.0')) // falseParameters
Returns
booleanExample
Check if version satisfies a comparator
const gte100 = createComparator('>=', parseVersionStrict('1.0.0'))
satisfiesComparator(parseVersionStrict('2.0.0'), gte100) // => true
satisfiesComparator(parseVersionStrict('0.9.0'), gte100) // => falseParameters
| Name | Type | Description |
|---|---|---|
§versions | unknown | Array of versions to sort |
Returns
SemVer[]Example
Sort versions in ascending order
sort([v2, v1, v3]) // [v1, v2, v3]