mirror of https://github.com/wg-easy/wg-easy
9 changed files with 45 additions and 35 deletions
@ -1,9 +1,8 @@ |
|||||
export default defineEventHandler((event) => { |
export default defineEventHandler(async () => { |
||||
setHeader(event, 'Content-Type', 'application/json'); |
|
||||
const release = Number.parseInt(RELEASE, 10); |
const release = Number.parseInt(RELEASE, 10); |
||||
if (isNaN(release)) { |
const latestRelease = await fetchLatestRelease(); |
||||
return 0; |
return { |
||||
} |
currentRelease: release, |
||||
// TODO: move changelog logic here
|
latestRelease: latestRelease, |
||||
return release; |
}; |
||||
}); |
}); |
||||
|
@ -0,0 +1,26 @@ |
|||||
|
export async function fetchLatestRelease() { |
||||
|
try { |
||||
|
const response = await $fetch<Record<string, string>>( |
||||
|
'https://wg-easy.github.io/wg-easy/changelog.json', |
||||
|
{ method: 'get' } |
||||
|
); |
||||
|
const releasesArray = Object.entries(response).map( |
||||
|
([version, changelog]) => ({ |
||||
|
version: parseInt(version, 10), |
||||
|
changelog: changelog, |
||||
|
}) |
||||
|
); |
||||
|
releasesArray.sort((a, b) => { |
||||
|
return b.version - a.version; |
||||
|
}); |
||||
|
|
||||
|
if (releasesArray.length === 0) { |
||||
|
throw new Error('Changelog is empty'); |
||||
|
} |
||||
|
|
||||
|
return releasesArray[0]!; |
||||
|
} catch (e) { |
||||
|
SERVER_DEBUG('Failed to fetch latest releases: ', e); |
||||
|
return { version: 0, changelog: '' }; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue