Skip to content

semver

Since v8.0.75

The semver module provides semantic version comparison helpers for JSH applications.

Typical usage looks like this.

const semver = require('semver');

Exported functions

  • satisfies(version, constraint)
  • maxSatisfying(versions, constraint)
  • compare(left, right)

satisfies()

Checks whether a version matches a semantic version constraint.

Syntax
semver.satisfies(version, constraint)
Parameters
  • version String
  • constraint String
Return value

Returns true when version satisfies constraint, otherwise false.

An empty constraint and latest are treated as *.

maxSatisfying()

Returns the highest version that satisfies a constraint.

Syntax
semver.maxSatisfying(versions, constraint)
Parameters
  • versions String[]
  • constraint String
Return value

Returns the original version string of the best match. If no version matches, an empty string is returned.

Invalid candidate versions are skipped.

compare()

Compares two semantic versions.

Syntax
semver.compare(left, right)
Parameters
  • left String
  • right String
Return value
  • -1 if left < right
  • 0 if left === right
  • 1 if left > right

Usage example

1
2
3
4
5
6
7
8
9
const semver = require('semver');

console.println(semver.satisfies('1.4.2', '1.2 - 1.4'));
console.println(semver.satisfies('2.0.0', '1.2 - 1.4'));
console.println(semver.maxSatisfying(['1.2.0', '1.4.2', '2.0.0'], '1.2 - 1.4'));
console.println(semver.maxSatisfying(['1.0.0', '1.1.4', '1.2.0'], '~1.1'));
console.println(semver.compare('1.1.0', '1.2.0'));
console.println(semver.compare('1.2.0', '1.1.0'));
console.println(semver.compare('1.2.0', '1.2.0'));

Behavior notes

  • Invalid version, left, right, or constraint values raise an error.
  • Leading and trailing spaces are trimmed before parsing versions and constraints.
  • Constraint parsing follows semantic version rules supported by the underlying implementation, including range expressions such as 1.2 - 1.4 and ~1.1.
Last updated on