github-docs-arabic-enhanced / src /versions /lib /version-satisfies-range.ts
AbdulElahGwaith's picture
Upload folder using huggingface_hub
88df9e4 verified
import semver from 'semver'
// Where "release" is a release number, like `3.1` for Enterprise Server,
// and "range" is a semver range operator with another number, like `<=3.2`.
export default function versionSatisfiesRange(release: string | undefined, range: string): boolean {
// Handle undefined release
if (!release) {
return false
}
// workaround for Enterprise Server 11.10.340 because we can't use semver to
// compare it to 2.x like we can with 2.0+
if (release === '11.10.340') return range.startsWith('<')
// If the release is '*', we want it to evaluate to false against the range 'next'
// but to true against itself ('*'). Unfortunately by default it will evaluate to
// true against 'next'. So we have to do a hack here and replace it with a
// dummy value of '1.0', which will get the results we want.
if (release === '*') {
release = '1.0'
}
const coercedRelease = semver.coerce(release)
if (!coercedRelease) {
throw new Error(`Unable to coerce release version: ${release}`)
}
return semver.satisfies(coercedRelease, range)
}