Skip to content

Commit 9a1e640

Browse files
committed
fix(auto-update-mananger): convert path to file url
1 parent 4ee47fb commit 9a1e640

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

packages/compass/src/main/auto-update-manager.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import type { PreferencesAccess } from 'compass-preferences-model';
1616
import { getOsInfo } from '@mongodb-js/get-os-info';
1717
import { createIpcTrack } from '@mongodb-js/compass-telemetry';
1818
import type { Response } from '@mongodb-js/devtools-proxy-support';
19+
import { pathToFileURL } from 'url';
1920

2021
const { log, mongoLogId, debug } = createLogger('COMPASS-AUTO-UPDATES');
2122
const track = createIpcTrack();
@@ -60,12 +61,25 @@ function isMismatchedArchDarwin(): boolean {
6061
return process.platform === 'darwin' && getSystemArch() !== process.arch;
6162
}
6263

64+
async function waitForWindow(timeout = 5_000) {
65+
const start = Date.now();
66+
while (start + timeout > Date.now()) {
67+
await new Promise((resolve) => setTimeout(resolve, 100));
68+
const window = BrowserWindow.getAllWindows()[0];
69+
if (window) {
70+
return window;
71+
}
72+
}
73+
return null;
74+
}
75+
6376
async function download(url: string): Promise<void> {
64-
const maybeWindow = BrowserWindow.getAllWindows()[0];
77+
const maybeWindow = await waitForWindow();
6578
if (maybeWindow) {
6679
await dl.download(maybeWindow, url, {
6780
onCompleted(file) {
68-
void shell.openExternal(file.path);
81+
const fileURL = pathToFileURL(file.path).toString();
82+
void shell.openExternal(fileURL);
6983
},
7084
});
7185
} else {

0 commit comments

Comments
 (0)