Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 4 additions & 2 deletions src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand All @@ -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();
}
Expand Down
26 changes: 23 additions & 3 deletions src/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ export const upgradeDevProxyWithPackageManager = async (
packageManager: string,
packageId: string,
upgradeCommand: string,
isBeta: boolean = false,
): Promise<boolean> => {
try {
// Check if package manager is available
Expand All @@ -137,17 +138,36 @@ 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 {
await executeCommand(upgradeCommand);
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') {
Expand All @@ -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) {
Expand Down