46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { requireAdminAuth } from '../../utils/access'
|
|
import {
|
|
fetchLatestGitHubRelease,
|
|
isVersionNewer,
|
|
resolveRuntimeAppVersion
|
|
} from '../../utils/app-version'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
await requireAdminAuth(event)
|
|
|
|
const config = useRuntimeConfig(event)
|
|
const currentVersion = resolveRuntimeAppVersion(
|
|
String(config.appVersion ?? '')
|
|
)
|
|
|
|
// 桌面版保持完全离线,不主动请求远端版本信息。
|
|
if (process.env.PIC_HOST_DESKTOP === '1') {
|
|
return {
|
|
currentVersion,
|
|
latestVersion: null,
|
|
updateAvailable: false,
|
|
releaseUrl: null
|
|
}
|
|
}
|
|
|
|
const query = getQuery(event)
|
|
const force = query.refresh === '1' || query.refresh === 'true'
|
|
const latest = await fetchLatestGitHubRelease(force)
|
|
|
|
if (!latest) {
|
|
return {
|
|
currentVersion,
|
|
latestVersion: null,
|
|
updateAvailable: false,
|
|
releaseUrl: null
|
|
}
|
|
}
|
|
|
|
return {
|
|
currentVersion,
|
|
latestVersion: latest.latestVersion,
|
|
updateAvailable: isVersionNewer(latest.latestVersion, currentVersion),
|
|
releaseUrl: latest.releaseUrl
|
|
}
|
|
})
|