@@ -10,105 +10,37 @@ import path from 'node:path';
1010
1111type 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+
1333const 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+
15498const 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