Skip to content

Commit 82a8a51

Browse files
WINBIGFOXsimonhamp
andauthored
Auto updater api extended (#220)
* Add detailed update info and new autoUpdater routes Extended autoUpdater listeners to include detailed update info, improving event payloads with version, files, release details, and more. Added new `/download-update` route for initiating update downloads and enhanced error reporting with structured error properties. * Add detailed update info and new autoUpdater routes Extended autoUpdater listeners to include detailed update info, improving event payloads with version, files, release details, and more. Added new `/download-update` route for initiating update downloads and enhanced error reporting with structured error properties. --------- Co-authored-by: Simon Hamp <[email protected]>
1 parent 24f45c6 commit 82a8a51

File tree

2 files changed

+98
-10
lines changed

2 files changed

+98
-10
lines changed

resources/js/electron-plugin/dist/server/api/autoUpdater.js

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ router.post("/check-for-updates", (req, res) => {
77
autoUpdater.checkForUpdates();
88
res.sendStatus(200);
99
});
10+
router.post("/download-update", (req, res) => {
11+
autoUpdater.downloadUpdate();
12+
res.sendStatus(200);
13+
});
1014
router.post("/quit-and-install", (req, res) => {
1115
autoUpdater.quitAndInstall();
1216
res.sendStatus(200);
@@ -16,21 +20,41 @@ autoUpdater.addListener("checking-for-update", () => {
1620
event: `\\Native\\Laravel\\Events\\AutoUpdater\\CheckingForUpdate`,
1721
});
1822
});
19-
autoUpdater.addListener("update-available", () => {
23+
autoUpdater.addListener("update-available", (event) => {
2024
notifyLaravel("events", {
2125
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateAvailable`,
26+
payload: {
27+
version: event.version,
28+
files: event.files,
29+
releaseDate: event.releaseDate,
30+
releaseName: event.releaseName,
31+
releaseNotes: event.releaseNotes,
32+
stagingPercentage: event.stagingPercentage,
33+
minimumSystemVersion: event.minimumSystemVersion,
34+
},
2235
});
2336
});
24-
autoUpdater.addListener("update-not-available", () => {
37+
autoUpdater.addListener("update-not-available", (event) => {
2538
notifyLaravel("events", {
2639
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateNotAvailable`,
40+
payload: {
41+
version: event.version,
42+
files: event.files,
43+
releaseDate: event.releaseDate,
44+
releaseName: event.releaseName,
45+
releaseNotes: event.releaseNotes,
46+
stagingPercentage: event.stagingPercentage,
47+
minimumSystemVersion: event.minimumSystemVersion,
48+
},
2749
});
2850
});
2951
autoUpdater.addListener("error", (error) => {
3052
notifyLaravel("events", {
3153
event: `\\Native\\Laravel\\Events\\AutoUpdater\\Error`,
3254
payload: {
33-
error: error,
55+
name: error.name,
56+
message: error.message,
57+
stack: error.stack,
3458
},
3559
});
3660
});
@@ -50,11 +74,28 @@ autoUpdater.addListener("update-downloaded", (event) => {
5074
notifyLaravel("events", {
5175
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateDownloaded`,
5276
payload: {
53-
version: event.version,
5477
downloadedFile: event.downloadedFile,
78+
version: event.version,
79+
files: event.files,
5580
releaseDate: event.releaseDate,
81+
releaseName: event.releaseName,
5682
releaseNotes: event.releaseNotes,
83+
stagingPercentage: event.stagingPercentage,
84+
minimumSystemVersion: event.minimumSystemVersion,
85+
},
86+
});
87+
});
88+
autoUpdater.addListener("update-cancelled", (event) => {
89+
notifyLaravel("events", {
90+
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateCancelled`,
91+
payload: {
92+
version: event.version,
93+
files: event.files,
94+
releaseDate: event.releaseDate,
5795
releaseName: event.releaseName,
96+
releaseNotes: event.releaseNotes,
97+
stagingPercentage: event.stagingPercentage,
98+
minimumSystemVersion: event.minimumSystemVersion,
5899
},
59100
});
60101
});

resources/js/electron-plugin/src/server/api/autoUpdater.ts

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import express from "express";
22
import electronUpdater from 'electron-updater';
33
const { autoUpdater } = electronUpdater;
4-
import type { ProgressInfo, UpdateDownloadedEvent } from "electron-updater";
4+
import type {
5+
ProgressInfo,
6+
UpdateDownloadedEvent,
7+
UpdateInfo,
8+
} from "electron-updater";
59
import { notifyLaravel } from "../utils.js";
610

711
const router = express.Router();
@@ -11,6 +15,11 @@ router.post("/check-for-updates", (req, res) => {
1115
res.sendStatus(200);
1216
});
1317

18+
router.post("/download-update", (req, res) => {
19+
autoUpdater.downloadUpdate();
20+
res.sendStatus(200);
21+
});
22+
1423
router.post("/quit-and-install", (req, res) => {
1524
autoUpdater.quitAndInstall();
1625
res.sendStatus(200);
@@ -22,23 +31,43 @@ autoUpdater.addListener("checking-for-update", () => {
2231
});
2332
});
2433

25-
autoUpdater.addListener("update-available", () => {
34+
autoUpdater.addListener("update-available", (event: UpdateInfo) => {
2635
notifyLaravel("events", {
2736
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateAvailable`,
37+
payload: {
38+
version: event.version,
39+
files: event.files,
40+
releaseDate: event.releaseDate,
41+
releaseName: event.releaseName,
42+
releaseNotes: event.releaseNotes,
43+
stagingPercentage: event.stagingPercentage,
44+
minimumSystemVersion: event.minimumSystemVersion,
45+
},
2846
});
2947
});
3048

31-
autoUpdater.addListener("update-not-available", () => {
49+
autoUpdater.addListener("update-not-available", (event: UpdateInfo) => {
3250
notifyLaravel("events", {
3351
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateNotAvailable`,
52+
payload: {
53+
version: event.version,
54+
files: event.files,
55+
releaseDate: event.releaseDate,
56+
releaseName: event.releaseName,
57+
releaseNotes: event.releaseNotes,
58+
stagingPercentage: event.stagingPercentage,
59+
minimumSystemVersion: event.minimumSystemVersion,
60+
},
3461
});
3562
});
3663

37-
autoUpdater.addListener("error", (error) => {
64+
autoUpdater.addListener("error", (error: Error) => {
3865
notifyLaravel("events", {
3966
event: `\\Native\\Laravel\\Events\\AutoUpdater\\Error`,
4067
payload: {
41-
error: error,
68+
name: error.name,
69+
message: error.message,
70+
stack: error.stack,
4271
},
4372
});
4473
});
@@ -60,11 +89,29 @@ autoUpdater.addListener("update-downloaded", (event: UpdateDownloadedEvent) => {
6089
notifyLaravel("events", {
6190
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateDownloaded`,
6291
payload: {
63-
version: event.version,
6492
downloadedFile: event.downloadedFile,
93+
version: event.version,
94+
files: event.files,
6595
releaseDate: event.releaseDate,
96+
releaseName: event.releaseName,
6697
releaseNotes: event.releaseNotes,
98+
stagingPercentage: event.stagingPercentage,
99+
minimumSystemVersion: event.minimumSystemVersion,
100+
},
101+
});
102+
});
103+
104+
autoUpdater.addListener("update-cancelled", (event: UpdateInfo) => {
105+
notifyLaravel("events", {
106+
event: `\\Native\\Laravel\\Events\\AutoUpdater\\UpdateCancelled`,
107+
payload: {
108+
version: event.version,
109+
files: event.files,
110+
releaseDate: event.releaseDate,
67111
releaseName: event.releaseName,
112+
releaseNotes: event.releaseNotes,
113+
stagingPercentage: event.stagingPercentage,
114+
minimumSystemVersion: event.minimumSystemVersion,
68115
},
69116
});
70117
});

0 commit comments

Comments
 (0)