Bun 은 시맨틱 버전닝 API 를 구현하여 버전을 비교하고 버전이 다른 버전 범위와 호환되는지 확인할 수 있습니다. 버전과 범위는 npm 클라이언트에서 사용하는 node-semver 와 호환되도록 설계되었습니다.
node-semver 보다 약 20 배 더 빠릅니다.
현재 이 API 는 두 가지 함수를 제공합니다:
Bun.semver.satisfies(version: string, range: string): boolean
version 이 range 를 만족하면 true 를, 그렇지 않으면 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"); // truerange 가 잘못되면 false 를 반환합니다. version 이 잘못되면 false 를 반환합니다.
Bun.semver.order(versionA: string, versionB: string): 0 | 1 | -1
versionA 와 versionB 가 같으면 0 을, versionA 가 versionB 보다 크면 1 을, versionA 가 versionB 보다 작으면 -1 을 반환합니다.
예제:
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 함수가 필요하면 이슈나 풀 리퀘스트를 열어주세요.