Skip to content

Commit 2dfa0e8

Browse files
committed
Simplify interface manager and types
1 parent b8898b9 commit 2dfa0e8

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

extensions/ql-vscode/src/abstract-interface-manager.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import * as path from 'path';
1111

1212
import { DisposableObject } from './pure/disposable-object';
1313
import { tmpDir } from './helpers';
14-
import { getHtmlForWebview, WebviewView } from './interface-utils';
14+
import { getHtmlForWebview, WebviewMessage, WebviewView } from './interface-utils';
1515

1616
export type InterfacePanelConfig = {
1717
viewId: string;
@@ -22,7 +22,7 @@ export type InterfacePanelConfig = {
2222
additionalOptions?: WebviewPanelOptions & WebviewOptions;
2323
}
2424

25-
export abstract class AbstractInterfaceManager<ToMessage extends { t: string }, FromMessage extends { t: string }> extends DisposableObject {
25+
export abstract class AbstractInterfaceManager<ToMessage extends WebviewMessage, FromMessage extends WebviewMessage> extends DisposableObject {
2626
protected panel: WebviewPanel | undefined;
2727
protected panelLoaded = false;
2828
protected panelLoadedCallBacks: (() => void)[] = [];
@@ -43,7 +43,7 @@ export abstract class AbstractInterfaceManager<ToMessage extends { t: string },
4343

4444
const config = this.getPanelConfig();
4545

46-
const panel = (this.panel = Window.createWebviewPanel(
46+
this.panel = Window.createWebviewPanel(
4747
config.viewId,
4848
config.title,
4949
{ viewColumn: ViewColumn.Active, preserveFocus: true },
@@ -59,7 +59,7 @@ export abstract class AbstractInterfaceManager<ToMessage extends { t: string },
5959
Uri.file(path.join(ctx.extensionPath, 'node_modules/@vscode/codicons/dist')),
6060
],
6161
}
62-
));
62+
);
6363
this.push(
6464
this.panel.onDidDispose(
6565
() => {
@@ -72,16 +72,16 @@ export abstract class AbstractInterfaceManager<ToMessage extends { t: string },
7272
)
7373
);
7474

75-
panel.webview.html = getHtmlForWebview(
75+
this.panel.webview.html = getHtmlForWebview(
7676
ctx,
77-
panel.webview,
77+
this.panel.webview,
7878
config.view,
7979
{
8080
allowInlineStyles: true,
8181
}
8282
);
8383
this.push(
84-
panel.webview.onDidReceiveMessage(
84+
this.panel.webview.onDidReceiveMessage(
8585
async (e) => this.onMessage(e),
8686
undefined,
8787
ctx.subscriptions

extensions/ql-vscode/src/interface-utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ export function tryResolveLocation(
114114

115115
export type WebviewView = 'results' | 'compare' | 'remote-queries';
116116

117+
export interface WebviewMessage {
118+
t: string;
119+
}
120+
117121
/**
118122
* Returns HTML to populate the given webview.
119123
* Uses a content security policy that only loads the given script.

0 commit comments

Comments
 (0)