diff --git a/CHANGELOG.md b/CHANGELOG.md index fc1ec4d..ff00b2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 > **Note**: odd version numbers, for example, `0.13.0`, are not included in this changelog. They are used to test the new features and fixes before the final release. -## [0.25.1] - Unreleased +## [0.25.2] - Unreleased ### Added: diff --git a/package-lock.json b/package-lock.json index 2188e43..fea3092 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dev-proxy-toolkit", - "version": "0.25.1", + "version": "0.25.2", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index eaa60ef..768f5d0 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "dev-proxy-toolkit", "displayName": "Dev Proxy Toolkit", "description": "Makes it easy to create and update Dev Proxy configuration files.", - "version": "0.25.1", + "version": "0.25.2", "publisher": "garrytrinder", "engines": { "vscode": "^1.101.0" diff --git a/src/commands.ts b/src/commands.ts index 288f752..2b18930 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -93,8 +93,9 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration if (platform === 'win32') { const packageId = versionPreference === VersionPreference.Stable ? 'Microsoft.DevProxy' : 'Microsoft.DevProxy.Beta'; const upgradeCommand = `winget upgrade ${packageId} --silent`; + const isBeta = versionPreference === VersionPreference.Beta; - const upgraded = await upgradeDevProxyWithPackageManager('winget', packageId, upgradeCommand); + const upgraded = await upgradeDevProxyWithPackageManager('winget', packageId, upgradeCommand, isBeta); if (!upgraded) { openUpgradeDocumentation(); } @@ -105,8 +106,9 @@ export const registerCommands = (context: vscode.ExtensionContext, configuration if (platform === 'darwin') { const packageId = versionPreference === VersionPreference.Stable ? 'dev-proxy' : 'dev-proxy-beta'; const upgradeCommand = `brew upgrade ${packageId}`; + const isBeta = versionPreference === VersionPreference.Beta; - const upgraded = await upgradeDevProxyWithPackageManager('brew', packageId, upgradeCommand); + const upgraded = await upgradeDevProxyWithPackageManager('brew', packageId, upgradeCommand, isBeta); if (!upgraded) { openUpgradeDocumentation(); } diff --git a/src/helpers.ts b/src/helpers.ts index eaf8325..e1a8c53 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -121,6 +121,7 @@ export const upgradeDevProxyWithPackageManager = async ( packageManager: string, packageId: string, upgradeCommand: string, + isBeta: boolean = false, ): Promise => { try { // Check if package manager is available @@ -137,9 +138,28 @@ export const upgradeDevProxyWithPackageManager = async ( return false; } + // Refresh package lists before upgrading + const updateMessage = vscode.window.setStatusBarMessage( + `Updating package lists...`, + ); + + try { + const updateCommand = + packageManager === 'winget' + ? 'winget source update' + : 'brew update'; + await executeCommand(updateCommand); + updateMessage.dispose(); + } catch (error) { + updateMessage.dispose(); + vscode.window.showWarningMessage(`Failed to update package lists: ${error}`); + // Continue with upgrade even if update fails + } + // Proceed with upgrade + const versionText = isBeta ? 'Dev Proxy Beta' : 'Dev Proxy'; const statusMessage = vscode.window.setStatusBarMessage( - 'Upgrading Dev Proxy...', + `Upgrading ${versionText}...`, ); try { @@ -147,7 +167,7 @@ export const upgradeDevProxyWithPackageManager = async ( statusMessage.dispose(); const result = await vscode.window.showInformationMessage( - 'Dev Proxy has been successfully upgraded!', + `${versionText} has been successfully upgraded!`, 'Reload Window', ); if (result === 'Reload Window') { @@ -156,7 +176,7 @@ export const upgradeDevProxyWithPackageManager = async ( return true; } catch (error) { statusMessage.dispose(); - vscode.window.showErrorMessage(`Failed to upgrade Dev Proxy: ${error}`); + vscode.window.showErrorMessage(`Failed to upgrade ${versionText}: ${error}`); return false; } } catch (error) {