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
.
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