Skip to content

Bun implementa un'API di versionamento semantico che può essere usata per confrontare versioni e determinare se una versione è compatibile con un altro intervallo di versioni. Le versioni e gli intervalli sono progettati per essere compatibili con node-semver, che è usato dai client npm.

È circa 20 volte più veloce di node-semver.

Attualmente, questa API fornisce due funzioni:

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

Restituisce true se version soddisfa range, altrimenti false.

Esempio:

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

Se range non è valido, restituisce false. Se version non è valido, restituisce false.

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

Restituisce 0 se versionA e versionB sono uguali, 1 se versionA è maggiore di versionB, e -1 se versionA è minore di versionB.

Esempio:

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

Se hai bisogno di altre funzioni semver, sentiti libero di aprire una issue o una pull request.

Bun a cura di www.bunjs.com.cn