Skip to content

Commit

Permalink
feat(update): implement dynamic feed URL for updates based on latest …
Browse files Browse the repository at this point in the history
…version
  • Loading branch information
Red-Asuka committed Dec 18, 2024
1 parent 72d5402 commit 0a05b13
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
4 changes: 0 additions & 4 deletions apps/desktop/electron-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,3 @@ linux:
maintainer: electronjs.org
category: Utility
npmRebuild: false
publish:
provider: generic
# TODO: change to our own server
url: http://localhost:8080/
22 changes: 18 additions & 4 deletions apps/desktop/src/main/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ import pkg, { CancellationToken } from 'electron-updater'
const store = new Store() as any
const { autoUpdater } = pkg

if (process.env.NODE_ENV === 'development') {
autoUpdater.forceDevUpdateConfig = true
}

autoUpdater.autoDownload = false
autoUpdater.autoInstallOnAppQuit = false

Expand Down Expand Up @@ -75,6 +71,17 @@ async function showReleaseNotesWindow(lang: Lang) {
}
}

async function getLatestVersion(): Promise<string> {
try {
const response = await fetch('https://community-sites.emqx.com/api/v1/all_version?product=MQTTX')
const data = await response.json()
return data.data?.[0]
} catch (error) {
console.error('Failed to get latest version:', error)
return app.getVersion()
}
}

function sendUpdateStatus(updateEvent: UpdateEvent) {
const windows = BrowserWindow.getAllWindows()
windows.forEach((window) => {
Expand All @@ -95,6 +102,13 @@ function useAppUpdater(settings: SelectSettings) {
store.set('version', version)
}
ipcMain.handle('check-for-updates', async () => {
if (process.env.NODE_ENV === 'development') {
autoUpdater.forceDevUpdateConfig = true
} else {
const latestVersion = await getLatestVersion()
const feedUrl = `https://www.emqx.com/en/downloads/MQTTX/${latestVersion}`
autoUpdater.setFeedURL({ provider: 'generic', url: feedUrl })
}
return await autoUpdater.checkForUpdates()
})
ipcMain.handle('download-update', async () => {
Expand Down

0 comments on commit 0a05b13

Please sign in to comment.