Skip to content

Commit 4102093

Browse files
committed
整理代码
1 parent 8593710 commit 4102093

File tree

9 files changed

+27
-20
lines changed

9 files changed

+27
-20
lines changed

client/src/addon_manager/commands/enable.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ const localLogger = createChildLogger("Enable Addon");
1616
export default async (context: vscode.ExtensionContext, message: Message) => {
1717
const addon = addonManager.addons.get(message.data.name);
1818
const workspaceFolders = vscode.workspace.workspaceFolders;
19+
20+
if (!addon || !workspaceFolders) {
21+
return;
22+
}
23+
1924
let selectedFolders: vscode.WorkspaceFolder[];
2025

2126
if (workspaceFolders && workspaceFolders.length === 1) {
@@ -37,7 +42,7 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
3742
return workspaceFolders.find(
3843
(folder) => folder.name === selection.label
3944
);
40-
});
45+
}).filter((folder) => !!folder);
4146
}
4247

4348
for (const folder of selectedFolders) {
@@ -46,7 +51,7 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
4651
} catch (e) {
4752
const message = `Failed to enable ${addon.name}!`;
4853
localLogger.error(message, { report: false });
49-
localLogger.error(e, { report: false });
54+
localLogger.error(String(e), { report: false });
5055
WebVue.sendNotification({
5156
level: NotificationLevels.error,
5257
message,

client/src/addon_manager/commands/uninstall.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ export default async (
66
message: { data: { name: string } }
77
) => {
88
const addon = addonManagerService.addons.get(message.data.name);
9-
addon.uninstall();
9+
addon?.uninstall();
1010
};

client/src/addon_manager/commands/update.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@ type Message = {
1616

1717
export default async (context: vscode.ExtensionContext, message: Message) => {
1818
const addon = addonManager.addons.get(message.data.name);
19+
if (!addon) {
20+
return;
21+
}
1922
try {
2023
await addon.update();
2124
} catch (e) {
2225
const message = `Failed to update ${addon.name}`;
2326
localLogger.error(message, { report: false });
24-
localLogger.error(e, { report: false });
27+
localLogger.error(String(e), { report: false });
2528
WebVue.sendNotification({
2629
level: NotificationLevels.error,
2730
message,

client/src/addon_manager/models/addon.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ export class Addon {
117117
const moduleURI = vscode.Uri.joinPath(this.uri, "module");
118118
this.#installed =
119119
(await filesystem.exists(moduleURI)) &&
120-
(await filesystem.readDirectory(moduleURI, { recursive: false }))
121-
.length > 0;
120+
((await filesystem.readDirectory(moduleURI, { recursive: false }))?.length ?? 0) > 0;
122121

123122
return folderStates;
124123
}
@@ -237,7 +236,7 @@ export class Addon {
237236
}
238237

239238
public async uninstall() {
240-
for (const folder of vscode.workspace.workspaceFolders) {
239+
for (const folder of vscode.workspace.workspaceFolders ?? []) {
241240
await this.disable(folder, true);
242241
}
243242
const moduleURI = vscode.Uri.joinPath(this.uri, "module");
@@ -256,7 +255,7 @@ export class Addon {
256255

257256
const { name, description, size, hasPlugin } = await this.fetchInfo();
258257
const enabled = this.#enabled;
259-
const installTimestamp = (await git.log()).latest.date;
258+
const installTimestamp = (await git.log()).latest?.date;
260259
const hasUpdate = this.#hasUpdate;
261260

262261
return {

client/src/addon_manager/panels/WebVue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class WebVue {
4848
command: string,
4949
data: { [index: string]: unknown } | unknown
5050
) {
51-
WebVue.currentPanel._panel.webview.postMessage({ command, data });
51+
WebVue.currentPanel?._panel.webview.postMessage({ command, data });
5252
}
5353

5454
public static sendNotification(message: Notification) {
@@ -255,7 +255,7 @@ export class WebVue {
255255
);
256256

257257
try {
258-
commands[command](context, message);
258+
(commands as any)[command](context, message);
259259
} catch (e) {
260260
commandLogger.error(e);
261261
}

client/src/addon_manager/registration.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export async function activate(context: vscode.ExtensionContext) {
8484
// Set up git repository for fetching addons
8585
try {
8686
setupGit(context);
87-
} catch (e) {
87+
} catch (e: any) {
8888
const message =
8989
"Failed to set up Git repository. Please check your connection to GitHub.";
9090
logger.error(message, { report: false });

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class AddonManager {
2020
try {
2121
await git.fetch();
2222
await git.pull();
23-
} catch (e) {
23+
} catch (e: any) {
2424
const message =
2525
"Failed to fetch addons! Please check your connection to GitHub.";
2626
localLogger.error(message, { report: false });
@@ -33,7 +33,7 @@ class AddonManager {
3333

3434
const addons = await filesystem.readDirectory(installLocation);
3535

36-
for (const addon of addons) {
36+
for (const addon of addons ?? []) {
3737
this.addons.set(addon.name, new Addon(addon.name, addon.uri));
3838
localLogger.verbose(`Found ${addon.name}`);
3939
}
@@ -50,7 +50,7 @@ class AddonManager {
5050

5151
public unlockAddon(name: string) {
5252
const addon = this.addons.get(name);
53-
return addon.setLock(false);
53+
return addon?.setLock(false);
5454
}
5555
}
5656

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ namespace filesystem {
153153
recursive: true,
154154
maxDepth: options.maxDepth,
155155
depth: options.depth + 1,
156-
}))
156+
})) ?? []
157157
);
158158
break;
159159
default:
@@ -175,7 +175,7 @@ namespace filesystem {
175175
});
176176

177177
const promises = [] as Promise<number>[];
178-
for (const node of tree) {
178+
for (const node of tree ?? []) {
179179
if (node.type !== vscode.FileType.File) continue;
180180

181181
promises.push(

client/src/addon_manager/services/logging/vsCodeLogFileTransport.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default class VSCodeLogFileTransport extends Transport {
1313

1414
private logDir: vscode.Uri;
1515

16-
private stream: fs.WriteStream;
16+
private stream?: fs.WriteStream;
1717

1818
constructor(logDir: vscode.Uri, opts?: Transport.TransportStreamOptions) {
1919
super(opts);
@@ -37,13 +37,13 @@ export default class VSCodeLogFileTransport extends Transport {
3737
flags: "a",
3838
});
3939
this.initialized = true;
40-
return new vscode.Disposable(() => this.stream.close);
40+
return new vscode.Disposable(() => this.stream?.close);
4141
}
4242

4343
/** Mark the start of the addon manager in the log */
4444
public logStart() {
4545
return new Promise((resolve, reject) => {
46-
this.stream.write(
46+
this.stream?.write(
4747
stringToByteArray("#### STARTUP ####\n"),
4848
(err) => {
4949
if (err) reject(err);
@@ -62,7 +62,7 @@ export default class VSCodeLogFileTransport extends Transport {
6262
this.emit("logged", info);
6363
});
6464

65-
this.stream.write(
65+
this.stream?.write(
6666
stringToByteArray(info[MESSAGE as unknown as string] + "\n")
6767
);
6868

0 commit comments

Comments
 (0)