Skip to content

Commit 285100c

Browse files
committed
fix: error when library setting undefined
1 parent b77d37b commit 285100c

File tree

3 files changed

+33
-31
lines changed

3 files changed

+33
-31
lines changed

client/src/addon_manager/commands/disable.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,20 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
1515
const addon = addonManager.addons.get(message.data.name);
1616
const workspaceFolders = vscode.workspace.workspaceFolders;
1717

18-
const folderOptions = await (
19-
await addon.getEnabled()
20-
)
21-
.filter((entry) => entry.enabled === true)
22-
.map((entry) => {
23-
return {
24-
label: entry.folder.name,
25-
detail: entry.folder.uri.path,
26-
};
27-
});
28-
2918
try {
3019
if (workspaceFolders.length === 1) {
3120
await addon.disable(workspaceFolders[0]);
3221
} else {
22+
const folderOptions = await (
23+
await addon.getEnabled()
24+
)
25+
.filter((entry) => entry.enabled === true)
26+
.map((entry) => {
27+
return {
28+
label: entry.folder.name,
29+
detail: entry.folder.uri.path,
30+
};
31+
});
3332
const targetFolders = await vscode.window.showQuickPick(
3433
folderOptions,
3534
{
@@ -48,7 +47,11 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
4847
(folder) => folder.name === target.label
4948
);
5049
await addon.disable(folder);
51-
await setSetting(folder, "Lua.workspace.checkThirdParty", false);
50+
await setSetting(
51+
folder,
52+
"Lua.workspace.checkThirdParty",
53+
false
54+
);
5255
}
5356
}
5457
} catch (e) {

client/src/addon_manager/commands/enable.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
1515
const addon = addonManager.addons.get(message.data.name);
1616
const workspaceFolders = vscode.workspace.workspaceFolders;
1717

18-
const folderOptions = await (
19-
await addon.getEnabled()
20-
)
21-
.filter((entry) => entry.enabled === false)
22-
.map((entry) => {
23-
return {
24-
label: entry.folder.name,
25-
detail: entry.folder.uri.path,
26-
};
27-
});
28-
2918
try {
3019
if (workspaceFolders.length === 1) {
3120
await addon.enable(workspaceFolders[0]);
3221
await setSetting(workspaceFolders[0], "Lua.workspace.checkThirdParty", false);
3322
} else {
23+
const folderOptions = await (
24+
await addon.getEnabled()
25+
)
26+
.filter((entry) => entry.enabled === false)
27+
.map((entry) => {
28+
return {
29+
label: entry.folder.name,
30+
detail: entry.folder.uri.path,
31+
};
32+
});
33+
3434
const targetFolders = await vscode.window.showQuickPick(
3535
folderOptions,
3636
{

client/src/addon_manager/services/settings.service.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ export const getSettingsFile = async (
3131

3232
let rawSettings = await filesystem.readFile(settingFileUri);
3333
if (!rawSettings) {
34+
localLogger.warn(
35+
`Could not get settings file for ${folder.name} folder, falling back to no settings`
36+
);
3437
rawSettings = "{}";
3538
}
3639

@@ -56,12 +59,8 @@ export const getSetting = async (
5659
name: string,
5760
folder: vscode.WorkspaceFolder
5861
): Promise<unknown> => {
59-
try {
60-
const workspaceSettings = await getSettingsFile(folder);
61-
return workspaceSettings[name];
62-
} catch (e) {
63-
return undefined;
64-
}
62+
const workspaceSettings = await getSettingsFile(folder);
63+
return workspaceSettings[name] ?? [];
6564
};
6665

6766
/** Set a setting in this workspace's `.vscode/settings.json` file.
@@ -92,7 +91,7 @@ export const setSetting = async (
9291

9392
export type WorkspaceLibrary = {
9493
folder: vscode.WorkspaceFolder;
95-
paths: string[];
94+
paths?: string[];
9695
};
9796

9897
export const getLibraryPaths = async () => {
@@ -101,7 +100,7 @@ export const getLibraryPaths = async () => {
101100
for (const folder of vscode.workspace.workspaceFolders) {
102101
folders.push({
103102
folder,
104-
paths: (await getSetting(LIBRARY_SETTING, folder)) as string[],
103+
paths: (await getSetting(LIBRARY_SETTING, folder)) as string[] | undefined,
105104
});
106105
}
107106

0 commit comments

Comments
 (0)