Skip to content

Bun implementa una API de versionado semántico que se puede usar para comparar versiones y determinar si una versión es compatible con otro rango de versiones. Las versiones y rangos están diseñados para ser compatibles con node-semver, que es usado por los clientes de npm.

Es aproximadamente 20 veces más rápido que node-semver.

Actualmente, esta API proporciona dos funciones:

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

Devuelve true si version satisface range, de lo contrario false.

Ejemplo:

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 es inválido, devuelve false. Si version es inválido, devuelve false.

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

Devuelve 0 si versionA y versionB son iguales, 1 si versionA es mayor que versionB, y -1 si versionA es menor que versionB.

Ejemplo:

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 necesitas otras funciones de semver, siéntete libre de abrir un issue o pull request.

Bun por www.bunjs.com.cn editar