Skip to content

Commit 5b3c4c7

Browse files
authored
Add error catching on await calls and a persistent bool tracking if the user is on the pre-release channel (or has been while there's been a pre-release available) (#11613)
1 parent 6d5e4c4 commit 5b3c4c7

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

Extension/src/LanguageServer/extension.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,9 +1171,15 @@ export function UpdateInsidersAccess(): void {
11711171

11721172
export async function preReleaseCheck(): Promise<void> {
11731173
const displayedPreReleasePrompt: PersistentState<boolean> = new PersistentState<boolean>("CPP.displayedPreReleasePrompt", false);
1174+
const isOnPreRelease: PersistentState<boolean> = new PersistentState<boolean>("CPP.isOnPreRelease", false);
1175+
1176+
if (util.getCppToolsTargetPopulation() === TargetPopulation.Insiders) {
1177+
isOnPreRelease.Value = true;
1178+
return;
1179+
}
11741180

11751181
// First we need to make sure the user isn't already on a pre-release version and hasn't dismissed this prompt before.
1176-
if (!displayedPreReleasePrompt.Value && util.getCppToolsTargetPopulation() === TargetPopulation.Public) {
1182+
if (!isOnPreRelease.Value && !displayedPreReleasePrompt.Value && util.getCppToolsTargetPopulation() === TargetPopulation.Public) {
11771183
// Get the info on the latest version from the marketplace to check if there is a pre-release version available.
11781184
const response = await fetch('https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery', {
11791185
method: 'POST',
@@ -1182,10 +1188,11 @@ export async function preReleaseCheck(): Promise<void> {
11821188
'Content-Type' : 'application/json'
11831189
},
11841190
body: '{"filters": [{"criteria": [{"filterType": 7, "value": "ms-vscode.cpptools"}]}], "flags": 529}'
1185-
});
1191+
}).catch(logAndReturn.undefined);
1192+
1193+
const data = await response?.json().catch(logAndReturn.undefined);
11861194

1187-
const data = await response.json();
1188-
const preReleaseAvailable = data.results[0].extensions[0].versions[0].properties.some((e: object) => Object.values(e).includes("Microsoft.VisualStudio.Code.PreRelease"));
1195+
const preReleaseAvailable = data?.results[0].extensions[0].versions[0].properties.some((e: object) => Object.values(e).includes("Microsoft.VisualStudio.Code.PreRelease"));
11891196

11901197
// If the user isn't on the pre-release version, but one is available, prompt them to install it.
11911198
if (preReleaseAvailable) {

0 commit comments

Comments
 (0)