brioche/semver

Bun provides a semantic versioning API, to compare versions and determine if a version is compatible with a range of versions. Bun’s semver is compatible with node-semver.

Bun Documentation

Functions

pub fn compare(version_a: String, version_b: String) -> Order

Compares two versions.

import brioche/semver

semver.compare("1.0.0", "1.0.0") // order.Eq
semver.compare("1.0.0", "1.0.1") // order.Lt
semver.compare("1.0.1", "1.0.0") // order.Gt

let unsorted = ["1.0.0", "1.0.1", "1.0.0-alpha", "1.0.0-beta", "1.0.0-rc"]
list.sort(unsorted, semver.compare)
// -> ["1.0.0-alpha", "1.0.0-beta", "1.0.0-rc", "1.0.0", "1.0.1"]
pub fn satisfies(
  version version: String,
  range range: String,
) -> Bool

Checks if a version is comprised within desired range.

import brioche/semver
semver.satisfies("1.0.0", "^1.0.0") // true
semver.satisfies("1.0.0", "^1.0.1") // false
semver.satisfies("1.0.0", "~1.0.0") // true
semver.satisfies("1.0.0", "~1.0.1") // false
semver.satisfies("1.0.0", "1.0.0") // true
semver.satisfies("1.0.0", "1.0.1") // false
semver.satisfies("1.0.1", "1.0.0") // false
semver.satisfies("1.0.0", "1.0.x") // true
semver.satisfies("1.0.0", "1.x.x") // true
semver.satisfies("1.0.0", "x.x.x") // true
semver.satisfies("1.0.0", ">= 1.0.0 and < 2.0.0") // true
semver.satisfies("1.0.0", ">= 1.0.0 and < 1.0.1") // true
Search Document