File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2,18 +2,28 @@ import { Logger } from '../types/cuimpTypes'
22
33interface GitHubRelease {
44 tag_name : string
5+ prerelease : boolean
6+ draft : boolean
57 [ key : string ] : unknown
68}
79
10+ const PRERELEASE_TAG_PATTERN = / [ - . _ ] ( a l p h a | b e t a | r c | p r e | a \d | b \d ) / i
11+
812export 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
1929export const getVersion = async (
You can’t perform that action at this time.
0 commit comments