Bun

Semver

Bun 實作了語意化版本控制 API,可用於比較版本,並判斷版本是否與另一個版本範圍相容。這些版本和範圍的設計旨在與 npm 客戶端使用的 node-semver 相容。

它比 node-semver 快約 20 倍。

Benchmark

目前,此 API 提供了兩個函式

Bun.semver.satisfies(版本: 字串, 範圍: 字串): 布林值

如果 版本 符合 範圍,則返回 true,否則返回 false

範例

import { semver } from "bun";

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 - 2.0.0"); // true
semver.satisfies("1.0.0", "1.0.0 - 1.0.1"); // true

如果 範圍 無效,則返回 false。如果 版本 無效,則返回 false。

Bun.semver.order(versionA: 字串, versionB: 字串): 0 | 1 | -1

如果 versionAversionB 相等,則返回 0;如果 versionA 大於 versionB,則返回 1;如果 versionA 小於 versionB,則返回 -1

範例

import { semver } from "bun";

semver.order("1.0.0", "1.0.0"); // 0
semver.order("1.0.0", "1.0.1"); // -1
semver.order("1.0.1", "1.0.0"); // 1

const unsorted = ["1.0.0", "1.0.1", "1.0.0-alpha", "1.0.0-beta", "1.0.0-rc"];
unsorted.sort(semver.order); // ["1.0.0-alpha", "1.0.0-beta", "1.0.0-rc", "1.0.0", "1.0.1"]
console.log(unsorted);

如果您需要其他 semver 函式,請隨時提出 issue 或 pull request。