@ossjs/release
Version:
Minimalistic, opinionated, and predictable release automation tool.
24 lines (19 loc) • 519 B
text/typescript
import * as semver from 'semver'
import { getTag, type TagPointer } from '#/src/utils/git/get-tag.js'
export function byReleaseVersion(left: string, right: string): number {
return semver.rcompare(left, right)
}
export async function getLatestRelease(
tags: string[],
): Promise<TagPointer | undefined> {
const allTags = tags
.filter((tag) => {
return semver.valid(tag)
})
.sort(byReleaseVersion)
const [latestTag] = allTags
if (!latestTag) {
return
}
return getTag(latestTag)
}