compare

import { compare } from "jsr:@ende/chronver";

function

function compare(version1: ChronVer, version2: ChronVer): 1 | 0 | -1

Compare two ChronVers.

Versions are ordered by year, month, day and changeset. When those match, a -break version sorts after one without it.

The feature is ignored, like build metadata in SemVer: 2024.04.03-a, 2024.04.03-b and 2024.04.03 all compare equal.

Returns 0 if version1 equals version2, or 1 if version1 is greater, or -1 if version2 is greater.

Sorts in ascending order if passed to Array.sort.

version1: ChronVer

The first ChronVer to compare

version2: ChronVer

The second ChronVer to compare

Returns

1 if version1 is greater, 0 if equal, or -1 if version2 is greater

Example: Usage

import { parse, compare } from "@ende/chronver";
import { assertEquals } from "@ende/assert";

const version1 = parse("2024.04.03");
const version2 = parse("2024.04.04");

assertEquals(compare(version1, version2), -1);
assertEquals(compare(version2, version1), 1);
assertEquals(compare(version1, version1), 0);
assertEquals(compare(parse("2024.04.03.1-break"), parse("2024.04.03.1")), 1);

Source