Skip to content

Bun implémente une API de versionnage sémantique qui peut être utilisée pour comparer des versions et déterminer si une version est compatible avec une autre plage de versions. Les versions et les plages sont conçues pour être compatibles avec node-semver, qui est utilisé par les clients npm.

C'est environ 20 fois plus rapide que node-semver.

Actuellement, cette API fournit deux fonctions :

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

Retourne true si version satisfait range, sinon false.

Exemple :

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

Si range est invalide, cela retourne false. Si version est invalide, cela retourne false.

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

Retourne 0 si versionA et versionB sont égaux, 1 si versionA est supérieur à versionB, et -1 si versionA est inférieur à versionB.

Exemple :

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);

Si vous avez besoin d'autres fonctions semver, n'hésitez pas à ouvrir une issue ou une pull request.

Bun édité par www.bunjs.com.cn