Skip to content

Commit 9d90759

Browse files
committed
feat(update): add automatic app update checker on startup
1 parent 023a8fd commit 9d90759

File tree

1 file changed

+52
-16
lines changed

1 file changed

+52
-16
lines changed

src/lib/main.js

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -377,22 +377,6 @@ async function loadApp() {
377377

378378
new EditorFile();
379379

380-
checkPluginsUpdate()
381-
.then((updates) => {
382-
if (!updates.length) return;
383-
acode.pushNotification(
384-
"Plugin Updates",
385-
`${updates.length} plugin${updates.length > 1 ? "s" : ""} ${updates.length > 1 ? "have" : "has"} new version${updates.length > 1 ? "s" : ""} available.`,
386-
{
387-
icon: "extension",
388-
action: () => {
389-
plugins(updates);
390-
},
391-
},
392-
);
393-
})
394-
.catch(console.error);
395-
396380
//load plugins
397381
try {
398382
await loadPlugins();
@@ -424,6 +408,58 @@ async function loadApp() {
424408

425409
initFileList();
426410

411+
checkPluginsUpdate()
412+
.then((updates) => {
413+
if (!updates.length) return;
414+
acode.pushNotification(
415+
"Plugin Updates",
416+
`${updates.length} plugin${updates.length > 1 ? "s" : ""} ${updates.length > 1 ? "have" : "has"} new version${updates.length > 1 ? "s" : ""} available.`,
417+
{
418+
icon: "extension",
419+
action: () => {
420+
plugins(updates);
421+
},
422+
},
423+
);
424+
})
425+
.catch(console.error);
426+
427+
// Check for app updates
428+
if (navigator.onLine) {
429+
fetch("https://api.github.com/repos/deadlyjack/Acode/releases/latest")
430+
.then((res) => res.json())
431+
.then((release) => {
432+
// assuming version is in format v1.2.3
433+
const latestVersion = release.tag_name
434+
.replace("v", "")
435+
.split(".")
436+
.map(Number);
437+
const currentVersion = BuildInfo.version.split(".").map(Number);
438+
439+
const hasUpdate = latestVersion.some(
440+
(num, i) => num > currentVersion[i],
441+
);
442+
443+
if (hasUpdate) {
444+
acode.pushNotification(
445+
"Update Available",
446+
`Acode ${release.tag_name} is now available! Click here to checkout.`,
447+
{
448+
icon: "update",
449+
type: "warning",
450+
action: () => {
451+
system.openInBrowser(release.html_url);
452+
},
453+
},
454+
);
455+
}
456+
})
457+
.catch((err) => {
458+
window.log("error", "Failed to check for updates");
459+
window.log("error", err);
460+
});
461+
}
462+
427463
/**
428464
*
429465
* @param {MouseEvent} e

0 commit comments

Comments
 (0)