Skip to content

Commit 4e11cc5

Browse files
authored
Merge pull request #44 from F4RAN/43-fix-alpha-download
fix: skip prerelease and alpha versions
2 parents fca8336 + 5a0b3e8 commit 4e11cc5

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

src/helpers/connector.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,28 @@ import { Logger } from '../types/cuimpTypes'
22

33
interface GitHubRelease {
44
tag_name: string
5+
prerelease: boolean
6+
draft: boolean
57
[key: string]: unknown
68
}
79

10+
const PRERELEASE_TAG_PATTERN = /[-._](alpha|beta|rc|pre|a\d|b\d)/i
11+
812
export const getLatestRelease = async (): Promise<string> => {
913
const response = await fetch(
10-
`https://api.github.com/repos/lexiforest/curl-impersonate/releases/latest`
14+
`https://api.github.com/repos/lexiforest/curl-impersonate/releases?per_page=20`
1115
)
1216
if (!response.ok) {
1317
throw new Error(`GitHub API error: ${response.status}`)
1418
}
15-
const data = (await response.json()) as GitHubRelease
16-
return data.tag_name // e.g. "v1.2.2"
19+
const releases = (await response.json()) as GitHubRelease[]
20+
const stable = releases.find(
21+
r => !r.draft && !r.prerelease && !PRERELEASE_TAG_PATTERN.test(r.tag_name)
22+
)
23+
if (!stable) {
24+
throw new Error('No stable release found for curl-impersonate')
25+
}
26+
return stable.tag_name // e.g. "v1.2.2"
1727
}
1828

1929
export const getVersion = async (

0 commit comments

Comments
 (0)