Skip to content

Commit f127f0a

Browse files
committed
Use helper functions to make edge paths more readable, remove incorrect exe paths
1 parent 5f533e2 commit f127f0a

1 file changed

Lines changed: 42 additions & 118 deletions

File tree

src/edgePaths.ts

Lines changed: 42 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -10,105 +10,37 @@ import path from 'node:path';
1010

1111
type Channel = 'stable' | 'canary' | 'beta' | 'dev';
1212

13+
function win32EdgeExe(envVar: string, fallback: string, folder: string) {
14+
if (!process.env[envVar] && !fallback) {
15+
return '';
16+
}
17+
return path.join(
18+
process.env[envVar] ?? fallback,
19+
'Microsoft',
20+
folder,
21+
'Application',
22+
'msedge.exe',
23+
);
24+
}
25+
26+
function win32EdgeExePaths(folder: string): string[] {
27+
return [
28+
win32EdgeExe('PROGRAMFILES(X86)', 'C:\\Program Files (x86)', folder),
29+
win32EdgeExe('LOCALAPPDATA', '', folder)
30+
].filter(p => p); // Filter out empty paths if env vars are missing
31+
}
32+
1333
const EDGE_EXECUTABLE_PATHS: Record<
1434
string,
1535
Partial<Record<Channel, string[]>>
1636
> = {
1737
win32: {
18-
stable: [
19-
path.join(
20-
process.env['PROGRAMFILES(X86)'] ?? 'C:\\Program Files (x86)',
21-
'Microsoft',
22-
'Edge',
23-
'Application',
24-
'msedge.exe',
25-
),
26-
path.join(
27-
process.env['PROGRAMFILES'] ?? 'C:\\Program Files',
28-
'Microsoft',
29-
'Edge',
30-
'Application',
31-
'msedge.exe',
32-
),
33-
...(process.env['LOCALAPPDATA']
34-
? [
35-
path.join(
36-
process.env['LOCALAPPDATA'],
37-
'Microsoft',
38-
'Edge',
39-
'Application',
40-
'msedge.exe',
41-
),
42-
]
43-
: []),
44-
],
45-
beta: [
46-
path.join(
47-
process.env['PROGRAMFILES(X86)'] ?? 'C:\\Program Files (x86)',
48-
'Microsoft',
49-
'Edge Beta',
50-
'Application',
51-
'msedge.exe',
52-
),
53-
path.join(
54-
process.env['PROGRAMFILES'] ?? 'C:\\Program Files',
55-
'Microsoft',
56-
'Edge Beta',
57-
'Application',
58-
'msedge.exe',
59-
),
60-
...(process.env['LOCALAPPDATA']
61-
? [
62-
path.join(
63-
process.env['LOCALAPPDATA'],
64-
'Microsoft',
65-
'Edge Beta',
66-
'Application',
67-
'msedge.exe',
68-
),
69-
]
70-
: []),
71-
],
72-
dev: [
73-
path.join(
74-
process.env['PROGRAMFILES(X86)'] ?? 'C:\\Program Files (x86)',
75-
'Microsoft',
76-
'Edge Dev',
77-
'Application',
78-
'msedge.exe',
79-
),
80-
path.join(
81-
process.env['PROGRAMFILES'] ?? 'C:\\Program Files',
82-
'Microsoft',
83-
'Edge Dev',
84-
'Application',
85-
'msedge.exe',
86-
),
87-
...(process.env['LOCALAPPDATA']
88-
? [
89-
path.join(
90-
process.env['LOCALAPPDATA'],
91-
'Microsoft',
92-
'Edge Dev',
93-
'Application',
94-
'msedge.exe',
95-
),
96-
]
97-
: []),
98-
],
99-
canary: [
100-
...(process.env['LOCALAPPDATA']
101-
? [
102-
path.join(
103-
process.env['LOCALAPPDATA'],
104-
'Microsoft',
105-
'Edge SxS',
106-
'Application',
107-
'msedge.exe',
108-
),
109-
]
110-
: []),
111-
],
38+
stable: win32EdgeExePaths('Edge'),
39+
beta: win32EdgeExePaths('Edge Beta'),
40+
dev: win32EdgeExePaths('Edge Dev'),
41+
canary: process.env['LOCALAPPDATA']
42+
? [win32EdgeExe('LOCALAPPDATA', '', 'Edge SxS')]
43+
: [],
11244
},
11345
darwin: {
11446
stable: ['/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge'],
@@ -151,34 +83,26 @@ export function resolveEdgeExecutablePath(channel: Channel): string {
15183
);
15284
}
15385

86+
function win32EdgeUserDataDir(folder: string): string | undefined {
87+
if (!process.env['LOCALAPPDATA']) {
88+
return undefined;
89+
}
90+
return path.join(
91+
process.env['LOCALAPPDATA'],
92+
'Microsoft',
93+
folder,
94+
'User Data',
95+
);
96+
}
97+
15498
const EDGE_USER_DATA_DIRS: Record<string, Partial<Record<Channel, string>>> = {
15599
win32: {
156100
...(process.env['LOCALAPPDATA']
157101
? {
158-
stable: path.join(
159-
process.env['LOCALAPPDATA'],
160-
'Microsoft',
161-
'Edge',
162-
'User Data',
163-
),
164-
beta: path.join(
165-
process.env['LOCALAPPDATA'],
166-
'Microsoft',
167-
'Edge Beta',
168-
'User Data',
169-
),
170-
dev: path.join(
171-
process.env['LOCALAPPDATA'],
172-
'Microsoft',
173-
'Edge Dev',
174-
'User Data',
175-
),
176-
canary: path.join(
177-
process.env['LOCALAPPDATA'],
178-
'Microsoft',
179-
'Edge SxS',
180-
'User Data',
181-
),
102+
stable: win32EdgeUserDataDir('Edge')!,
103+
beta: win32EdgeUserDataDir('Edge Beta')!,
104+
dev: win32EdgeUserDataDir('Edge Dev')!,
105+
canary: win32EdgeUserDataDir('Edge SxS')!,
182106
}
183107
: {}),
184108
},

0 commit comments

Comments
 (0)