1
1
import * as vscode from 'vscode' ;
2
2
import { pluginDocs } from './constants' ;
3
- import { VersionPreference } from './enums' ;
4
- import { executeCommand , isConfigFile , openUpgradeDocumentation , upgradeDevProxyWithPackageManager } from './helpers' ;
3
+ import {
4
+ PackageManager ,
5
+ VersionPreference ,
6
+ } from './enums' ;
7
+ import { executeCommand , getPackageIdentifier , isConfigFile , openUpgradeDocumentation , upgradeDevProxyWithPackageManager } from './helpers' ;
5
8
import { isDevProxyRunning , getDevProxyExe } from './detect' ;
6
9
7
10
export const registerCommands = ( context : vscode . ExtensionContext , configuration : vscode . WorkspaceConfiguration ) => {
8
11
const versionPreference = configuration . get ( 'version' ) as VersionPreference ;
9
- const devProxyExe = getDevProxyExe ( configuration . get ( 'version' ) as VersionPreference ) ;
12
+ const devProxyExe = getDevProxyExe ( versionPreference ) ;
10
13
11
14
context . subscriptions . push (
12
15
vscode . commands . registerCommand ( 'dev-proxy-toolkit.install' , async ( platform : NodeJS . Platform ) => {
13
16
const message = vscode . window . setStatusBarMessage ( 'Installing Dev Proxy...' ) ;
14
17
15
18
// we are on windows so we can use winget
16
19
if ( platform === 'win32' ) {
17
- const id = versionPreference === VersionPreference . Stable ? 'Microsoft.DevProxy' : 'Microsoft.DevProxy.Beta' ;
20
+ const id = getPackageIdentifier ( versionPreference , PackageManager . Winget ) ;
18
21
// we first need to check if winget is installed, it is bundled with windows 11 but not windows 10
19
22
try {
20
23
await executeCommand ( 'winget --version' ) ;
@@ -37,7 +40,7 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
37
40
38
41
// we are on macos so we can use brew
39
42
if ( platform === 'darwin' ) {
40
- const id = versionPreference === VersionPreference . Stable ? 'dev-proxy' : 'dev-proxy-beta' ;
43
+ const id = getPackageIdentifier ( versionPreference , PackageManager . Homebrew ) ;
41
44
// check if brew is installed
42
45
try {
43
46
await executeCommand ( 'brew --version' ) ;
@@ -91,7 +94,13 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
91
94
92
95
// Handle Windows
93
96
if ( platform === 'win32' ) {
94
- const packageId = versionPreference === VersionPreference . Stable ? 'Microsoft.DevProxy' : 'Microsoft.DevProxy.Beta' ;
97
+ const packageId = getPackageIdentifier ( versionPreference , PackageManager . Winget ) ;
98
+
99
+ if ( ! packageId ) {
100
+ openUpgradeDocumentation ( ) ;
101
+ return ;
102
+ }
103
+
95
104
const upgradeCommand = `winget upgrade ${ packageId } --silent` ;
96
105
const isBeta = versionPreference === VersionPreference . Beta ;
97
106
@@ -104,7 +113,12 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
104
113
105
114
// Handle macOS
106
115
if ( platform === 'darwin' ) {
107
- const packageId = versionPreference === VersionPreference . Stable ? 'dev-proxy' : 'dev-proxy-beta' ;
116
+ const packageId = getPackageIdentifier ( versionPreference , PackageManager . Homebrew ) ;
117
+ if ( ! packageId ) {
118
+ openUpgradeDocumentation ( ) ;
119
+ return ;
120
+ }
121
+
108
122
const upgradeCommand = `brew upgrade ${ packageId } ` ;
109
123
const isBeta = versionPreference === VersionPreference . Beta ;
110
124
0 commit comments