11import * as vscode from 'vscode' ;
22import { 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' ;
58import { isDevProxyRunning , getDevProxyExe } from './detect' ;
69import parse from 'json-to-ast' ;
710
811export const registerCommands = ( context : vscode . ExtensionContext , configuration : vscode . WorkspaceConfiguration ) => {
912 const versionPreference = configuration . get ( 'version' ) as VersionPreference ;
10- const devProxyExe = getDevProxyExe ( configuration . get ( 'version' ) as VersionPreference ) ;
13+ const devProxyExe = getDevProxyExe ( versionPreference ) ;
1114
1215 context . subscriptions . push (
1316 vscode . commands . registerCommand ( 'dev-proxy-toolkit.install' , async ( platform : NodeJS . Platform ) => {
1417 const message = vscode . window . setStatusBarMessage ( 'Installing Dev Proxy...' ) ;
1518
1619 // we are on windows so we can use winget
1720 if ( platform === 'win32' ) {
18- const id = versionPreference === VersionPreference . Stable ? 'Microsoft.DevProxy' : 'Microsoft.DevProxy.Beta' ;
21+ const id = getPackageIdentifier ( versionPreference , PackageManager . Winget ) ;
1922 // we first need to check if winget is installed, it is bundled with windows 11 but not windows 10
2023 try {
2124 await executeCommand ( 'winget --version' ) ;
@@ -38,7 +41,7 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
3841
3942 // we are on macos so we can use brew
4043 if ( platform === 'darwin' ) {
41- const id = versionPreference === VersionPreference . Stable ? 'dev-proxy' : 'dev-proxy-beta' ;
44+ const id = getPackageIdentifier ( versionPreference , PackageManager . Homebrew ) ;
4245 // check if brew is installed
4346 try {
4447 await executeCommand ( 'brew --version' ) ;
@@ -187,7 +190,12 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
187190
188191 // Handle Windows
189192 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+
191199 const upgradeCommand = `winget upgrade ${ packageId } --silent` ;
192200 const isBeta = versionPreference === VersionPreference . Beta ;
193201
@@ -200,7 +208,12 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration
200208
201209 // Handle macOS
202210 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+
204217 const upgradeCommand = `brew upgrade ${ packageId } ` ;
205218 const isBeta = versionPreference === VersionPreference . Beta ;
206219
0 commit comments