@@ -7,12 +7,16 @@ import type { DownloadResult, InstallResult, Installer } from "./installer";
77import { OS , type Platform } from "./platform" ;
88
99export class KnownGoodVersionInstaller implements Installer {
10- private readonly versionResolver : KnownGoodVersionResolver ;
1110 private readonly platform : Platform ;
11+ private readonly resolveBrowserVersionOnly : boolean ;
12+ private readonly versionResolver : KnownGoodVersionResolver ;
1213
13- constructor ( platform : Platform ) {
14+ constructor (
15+ platform : Platform ,
16+ { resolveBrowserVersionOnly } : { resolveBrowserVersionOnly : boolean } ,
17+ ) {
1418 this . platform = platform ;
15-
19+ this . resolveBrowserVersionOnly = resolveBrowserVersionOnly ;
1620 this . versionResolver = new KnownGoodVersionResolver ( this . platform ) ;
1721 }
1822
@@ -26,7 +30,9 @@ export class KnownGoodVersionInstaller implements Installer {
2630 }
2731
2832 async downloadBrowser ( version : string ) : Promise < DownloadResult > {
29- const resolved = await this . versionResolver . resolve ( version ) ;
33+ const resolved = this . resolveBrowserVersionOnly
34+ ? await this . versionResolver . resolveBrowserOnly ( version )
35+ : await this . versionResolver . resolveBrowserAndDriver ( version ) ;
3036 if ( ! resolved ) {
3137 throw new Error ( `Version ${ version } not found in known good versions` ) ;
3238 }
@@ -42,7 +48,9 @@ export class KnownGoodVersionInstaller implements Installer {
4248 version : string ,
4349 archive : string ,
4450 ) : Promise < InstallResult > {
45- const resolved = await this . versionResolver . resolve ( version ) ;
51+ const resolved = this . resolveBrowserVersionOnly
52+ ? await this . versionResolver . resolveBrowserOnly ( version )
53+ : await this . versionResolver . resolveBrowserAndDriver ( version ) ;
4654 if ( ! resolved ) {
4755 throw new Error ( `Version ${ version } not found in known good versions` ) ;
4856 }
@@ -77,7 +85,12 @@ export class KnownGoodVersionInstaller implements Installer {
7785 }
7886
7987 async downloadDriver ( version : string ) : Promise < DownloadResult > {
80- const resolved = await this . versionResolver . resolve ( version ) ;
88+ if ( this . resolveBrowserVersionOnly ) {
89+ throw new Error ( "Unexpectedly trying to download chromedriver" ) ;
90+ }
91+
92+ const resolved =
93+ await this . versionResolver . resolveBrowserAndDriver ( version ) ;
8194 if ( ! resolved ) {
8295 throw new Error ( `Version ${ version } not found in known good versions` ) ;
8396 }
@@ -93,7 +106,12 @@ export class KnownGoodVersionInstaller implements Installer {
93106 version : string ,
94107 archive : string ,
95108 ) : Promise < InstallResult > {
96- const resolved = await this . versionResolver . resolve ( version ) ;
109+ if ( this . resolveBrowserVersionOnly ) {
110+ throw new Error ( "Unexpectedly trying to install chromedriver" ) ;
111+ }
112+
113+ const resolved =
114+ await this . versionResolver . resolveBrowserAndDriver ( version ) ;
97115 if ( ! resolved ) {
98116 throw new Error ( `Version ${ version } not found in known good versions` ) ;
99117 }
0 commit comments