Skip to content

Commit d20f8a6

Browse files
Add isTreeView type checker function
1 parent f58d76b commit d20f8a6

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

extensions/ql-vscode/test/vscode-tests/test-dispose-handler.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
import type { Disposable } from "vscode";
1+
import type { Disposable, TreeView } from "vscode";
22
import { DisposableObject } from "../../src/common/disposable-object";
33

4+
function isTreeView(obj: unknown): obj is TreeView<unknown> {
5+
return (
6+
typeof obj === "object" &&
7+
obj !== null &&
8+
"onDidExpandElement" in obj &&
9+
"onDidCollapseElement" in obj &&
10+
"reveal" in obj
11+
);
12+
}
13+
414
export function testDisposeHandler(disposable: Disposable) {
5-
if (
6-
(disposable as any).onDidExpandElement &&
7-
(disposable as any).onDidCollapseElement &&
8-
(disposable as any).reveal
9-
) {
10-
// This looks like a treeViewer. Don't dispose
15+
if (isTreeView(disposable)) {
16+
// This looks like a TreeView. Don't dispose
1117
return;
1218
}
1319
if (disposable instanceof DisposableObject) {

0 commit comments

Comments
 (0)