1
1
import * as vscode from 'vscode' ;
2
2
import { pluginDocs } from './constants' ;
3
- import { VersionPreference } from './enums' ;
4
- import { executeCommand , isConfigFile , openUpgradeDocumentation , upgradeDevProxyWithPackageManager , getASTNode , getRangeFromASTNode } from './helpers' ;
3
+ import {
4
+ PackageManager ,
5
+ VersionPreference ,
6
+ } from './enums' ;
7
+ import { executeCommand , getPackageIdentifier , isConfigFile , openUpgradeDocumentation , upgradeDevProxyWithPackageManager , getASTNode , getRangeFromASTNode } from './helpers' ;
5
8
import { isDevProxyRunning , getDevProxyExe } from './detect' ;
6
9
import parse from 'json-to-ast' ;
7
10
8
11
export const registerCommands = ( context : vscode . ExtensionContext , configuration : vscode . WorkspaceConfiguration ) => {
9
12
const versionPreference = configuration . get ( 'version' ) as VersionPreference ;
10
- const devProxyExe = getDevProxyExe ( configuration . get ( 'version' ) as VersionPreference ) ;
13
+ const devProxyExe = getDevProxyExe ( versionPreference ) ;
11
14
12
15
context . subscriptions . push (
13
16
vscode . commands . registerCommand ( 'dev-proxy-toolkit.install' , async ( platform : NodeJS . Platform ) => {
14
17
const message = vscode . window . setStatusBarMessage ( 'Installing Dev Proxy...' ) ;
15
18
16
19
// we are on windows so we can use winget
17
20
if ( platform === 'win32' ) {
18
- const id = versionPreference === VersionPreference . Stable ? 'Microsoft.DevProxy' : 'Microsoft.DevProxy.Beta' ;
21
+ const id = getPackageIdentifier ( versionPreference , PackageManager . Winget ) ;
19
22
// we first need to check if winget is installed, it is bundled with windows 11 but not windows 10
20
23
try {
21
24
await executeCommand ( 'winget --version' ) ;
@@ -38,7 +41,7 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
38
41
39
42
// we are on macos so we can use brew
40
43
if ( platform === 'darwin' ) {
41
- const id = versionPreference === VersionPreference . Stable ? 'dev-proxy' : 'dev-proxy-beta' ;
44
+ const id = getPackageIdentifier ( versionPreference , PackageManager . Homebrew ) ;
42
45
// check if brew is installed
43
46
try {
44
47
await executeCommand ( 'brew --version' ) ;
@@ -187,7 +190,12 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
187
190
188
191
// Handle Windows
189
192
if ( platform === 'win32' ) {
190
- const packageId = versionPreference === VersionPreference . Stable ? 'Microsoft.DevProxy' : 'Microsoft.DevProxy.Beta' ;
193
+ const packageId = getPackageIdentifier ( versionPreference , PackageManager . Winget ) ;
194
+ if ( ! packageId ) {
195
+ openUpgradeDocumentation ( ) ;
196
+ return ;
197
+ }
198
+
191
199
const upgradeCommand = `winget upgrade ${ packageId } --silent` ;
192
200
const isBeta = versionPreference === VersionPreference . Beta ;
193
201
@@ -200,7 +208,12 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
200
208
201
209
// Handle macOS
202
210
if ( platform === 'darwin' ) {
203
- const packageId = versionPreference === VersionPreference . Stable ? 'dev-proxy' : 'dev-proxy-beta' ;
211
+ const packageId = getPackageIdentifier ( versionPreference , PackageManager . Homebrew ) ;
212
+ if ( ! packageId ) {
213
+ openUpgradeDocumentation ( ) ;
214
+ return ;
215
+ }
216
+
204
217
const upgradeCommand = `brew upgrade ${ packageId } ` ;
205
218
const isBeta = versionPreference === VersionPreference . Beta ;
206
219
0 commit comments