/
aqa
/
claude-code
Обзор
Документация
Войти
/
aqa
/
claude-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
utils/semver.ts
59 строк
2 KB
kuberwastaken
new initial commit (history rewritten)
01 апр 2026, 14:57
01 апр 2026, 14:57
c1996f2
Код
Авторство
О чём код?
/** * Semver comparison utilities that use Bun.semver when available * and fall back to the npm `semver` package in Node.js environments. * * Bun.semver.order() is ~20x faster than npm semver comparisons. * The npm semver fallback always uses { loose: true }. */ let _npmSemver: typeof import('semver') | undefined function getNpmSemver(): typeof import('semver') { if (!_npmSemver) { // eslint-disable-next-line @typescript-eslint/no-require-imports _npmSemver = require('semver') as typeof import('semver') } return _npmSemver } export function gt(a: string, b: string): boolean { if (typeof Bun !== 'undefined') { return Bun.semver.order(a, b) === 1 } return getNpmSemver().gt(a, b, { loose: true }) } export function gte(a: string, b: string): boolean { if (typeof Bun !== 'undefined') { return Bun.semver.order(a, b) >= 0 } return getNpmSemver().gte(a, b, { loose: true }) } export function lt(a: string, b: string): boolean { if (typeof Bun !== 'undefined') { return Bun.semver.order(a, b) === -1 } return getNpmSemver().lt(a, b, { loose: true }) } export function lte(a: string, b: string): boolean { if (typeof Bun !== 'undefined') { return Bun.semver.order(a, b) <= 0 } return getNpmSemver().lte(a, b, { loose: true }) } export function satisfies(version: string, range: string): boolean { if (typeof Bun !== 'undefined') { return Bun.semver.satisfies(version, range) } return getNpmSemver().satisfies(version, range, { loose: true }) } export function order(a: string, b: string): -1 | 0 | 1 { if (typeof Bun !== 'undefined') { return Bun.semver.order(a, b) } return getNpmSemver().compare(a, b, { loose: true }) }