Files
edgeever/scripts/native-update-status.mjs
edgeever-updater[bot] 507cb892ad chore: update EdgeEver from v2.19.0
EdgeEver-Upstream-Commit: a80d9bfda1aad846e20882813758a59fe27bf8ca
2026-11-04 09:13:22 +00:00

31 lines
1.8 KiB
JavaScript

// Read the public desktop bridge through the fixture's loopback main debugger.
// No renderer/account state is changed; this is used only to diagnose a failure.
export const readNativeUpdateStatus = async (endpoint) => {
if (!endpoint) return null;
const socket = new WebSocket(endpoint);
try {
await new Promise((resolve, reject) => {
const timer = setTimeout(() => reject(new Error("Fixture debugger connection timed out")), 5_000);
socket.addEventListener("open", () => { clearTimeout(timer); resolve(); }, { once: true });
socket.addEventListener("error", () => { clearTimeout(timer); reject(new Error("Fixture debugger unavailable")); }, { once: true });
});
const result = await new Promise((resolve, reject) => {
const timer = setTimeout(() => reject(new Error("Fixture status query timed out")), 5_000);
socket.addEventListener("message", ({ data }) => {
const response = JSON.parse(String(data));
if (response.id !== 1) return;
clearTimeout(timer);
resolve(response.result?.result?.value ?? response.error ?? response.result?.exceptionDetails);
});
socket.send(JSON.stringify({ id: 1, method: "Runtime.evaluate", params: { awaitPromise: true, returnByValue: true,
expression: `(async () => {
const req = process.getBuiltinModule('module').createRequire(process.resourcesPath + '/app.asar/package.json');
const window = req('electron').BrowserWindow.getAllWindows().find(value => value.webContents.getURL().startsWith('edgeever-app://app/'));
return window ? await window.webContents.executeJavaScript('window.edgeeverDesktop.updateStatus()') : {error: 'fixture window unavailable'};
})()`,
} }));
});
return result;
} finally { socket.close(); }
};