Skip to content

O Bun implementa uma API de versionamento semântico que pode ser usada para comparar versões e determinar se uma versão é compatível com um intervalo de versões. As versões e intervalos são projetados para serem compatíveis com node-semver, que é usado por clientes npm.

É aproximadamente 20x mais rápido que node-semver.

Atualmente, esta API fornece duas funções:

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

Retorna true se version satisfaz range, caso contrário false.

Exemplo:

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 for inválido, retorna false. Se version for inválido, retorna false.

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

Retorna 0 se versionA e versionB são iguais, 1 se versionA é maior que versionB, e -1 se versionA é menor que versionB.

Exemplo:

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 você precisar de outras funções semver, sinta-se à vontade para abrir uma issue ou pull request.

Bun by www.bunjs.com.cn edit