Skip to content

يطبق Bun واجهة برمجة تطبيقات للإصدارات الدلالية يمكن استخدامها لمقارنة الإصدارات وتحديد ما إذا كان الإصدار متوافقًا مع نطاق آخر من الإصدارات. تم تصميم الإصدارات والنطاقات لتكون متوافقة مع node-semver الذي تستخدمه عملاء npm.

أسرع بحوالي 20 مرة من node-semver.

حاليًا، توفر هذه الواجهة دالتين:

Bun.semver.satisfies(version: string, range: string): boolean

ترجع true إذا كان version يفي بـ range، وإلا false.

مثال:

typescript
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

إذا كان range غير صالح، يرجع false. إذا كان version غير صالح، يرجع false.

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

ترجع 0 إذا كان versionA و versionB متساويين، 1 إذا كان versionA أكبر من versionB، و -1 إذا كان versionA أصغر من versionB.

مثال:

typescript
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 أخرى، فلا تتردد في فتح مشكلة أو طلب سحب.

Bun بواسطة www.bunjs.com.cn تحرير