Bun implementiert eine API für semantische Versionierung, die zum Vergleichen von Versionen und zur Bestimmung verwendet werden kann, ob eine Version mit einem anderen Versionsbereich kompatibel ist. Die Versionen und Bereiche sind so konzipiert, dass sie mit node-semver kompatibel sind, das von npm-Clients verwendet wird.
Es ist etwa 20-mal schneller als node-semver.
Derzeit bietet diese API zwei Funktionen:
Bun.semver.satisfies(version: string, range: string): boolean
Gibt true zurück, wenn version den range erfüllt, andernfalls false.
Beispiel:
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"); // trueWenn range ungültig ist, gibt es false zurück. Wenn version ungültig ist, gibt es false zurück.
Bun.semver.order(versionA: string, versionB: string): 0 | 1 | -1
Gibt 0 zurück, wenn versionA und versionB gleich sind, 1, wenn versionA größer als versionB ist, und -1, wenn versionA kleiner als versionB ist.
Beispiel:
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);Wenn Sie andere Semver-Funktionen benötigen, können Sie gerne ein Issue oder einen Pull Request öffnen.