mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-26 15:31:53 +00:00
9b8dfd6259
* feat(versioning): add paket versioning * docs(versioning): use JSDoc for paket function comments
28 lines
939 B
TypeScript
28 lines
939 B
TypeScript
import type { NugetVersion } from '../nuget/types.ts';
|
|
import { compare as compareNuget } from '../nuget/version.ts';
|
|
|
|
export function sameReleaseParts(x: NugetVersion, y: NugetVersion): boolean {
|
|
return (
|
|
x.major === y.major &&
|
|
(x.minor ?? 0) === (y.minor ?? 0) &&
|
|
(x.patch ?? 0) === (y.patch ?? 0) &&
|
|
(x.revision ?? 0) === (y.revision ?? 0)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* NuGet ordering, plus the Paket rule that the literal `prerelease` suffix
|
|
* sorts below any other prerelease of the same release version, so that
|
|
* `1.2.3-prerelease` acts as an "any prerelease of 1.2.3" floor.
|
|
*/
|
|
export function compare(x: NugetVersion, y: NugetVersion): number {
|
|
if (x.prerelease && y.prerelease && sameReleaseParts(x, y)) {
|
|
const xSentinel = x.prerelease === 'prerelease';
|
|
const ySentinel = y.prerelease === 'prerelease';
|
|
if (xSentinel !== ySentinel) {
|
|
return xSentinel ? -1 : 1;
|
|
}
|
|
}
|
|
return compareNuget(x, y);
|
|
}
|