Apply recent learnings about array filter (#161233)

This commit is contained in:
Alex Ross
2022-09-19 14:54:16 +02:00
committed by GitHub
parent bf9d94c014
commit cb1ebb2cd8
@@ -100,7 +100,10 @@ export class ExtHostTreeViews implements ExtHostTreeViewsShape {
get onDidChangeSelection() { return treeView.onDidChangeSelection; },
get visible() { return treeView.visible; },
get onDidChangeVisibility() { return treeView.onDidChangeVisibility; },
get onDidChangeCheckboxState() { checkProposedApiEnabled(extension, 'treeItemCheckbox'); return treeView.onDidChangeCheckboxState; },
get onDidChangeCheckboxState() {
checkProposedApiEnabled(extension, 'treeItemCheckbox');
return treeView.onDidChangeCheckboxState;
},
get message() { return treeView.message; },
set message(message: string) {
treeView.message = message;
@@ -488,6 +491,7 @@ class ExtHostTreeView<T> extends Disposable {
}
async setCheckboxState(checkboxUpdates: CheckboxUpdate[]) {
type CheckboxUpdateWithItem = { extensionItem: NonNullable<T>; treeItem: vscode.TreeItem2; newState: TreeItemCheckboxState };
const items = (await Promise.all(checkboxUpdates.map(async checkboxUpdate => {
const extensionItem = this.getExtensionElement(checkboxUpdate.treeItemHandle);
if (extensionItem) {
@@ -498,7 +502,7 @@ class ExtHostTreeView<T> extends Disposable {
};
}
return Promise.resolve(undefined);
}))).filter((item) => item !== undefined) as { extensionItem: T; treeItem: vscode.TreeItem2; newState: TreeItemCheckboxState }[];
}))).filter<CheckboxUpdateWithItem>((item): item is CheckboxUpdateWithItem => item !== undefined);
items.forEach(item => {
item.treeItem.checkboxState = item.newState ? TreeItemCheckboxState.Checked : TreeItemCheckboxState.Unchecked;