@@ -18,12 +18,6 @@ export class ServePanelProvider implements vscode.WebviewViewProvider {
1818 this . _view . webview . postMessage ( message ) ;
1919 }
2020
21- public async refreshState ( ) {
22- this . postMessage ( {
23- type : 'refreshState' ,
24- } ) ;
25- }
26-
2721 resolveWebviewView ( webviewView : vscode . WebviewView ) {
2822 this . _view = webviewView ;
2923 webviewView . webview . html = this . _getHtmlForWebview ( webviewView . webview ) ;
@@ -33,69 +27,36 @@ export class ServePanelProvider implements vscode.WebviewViewProvider {
3327 } ;
3428
3529 webviewView . webview . onDidReceiveMessage ( async ( m : Message ) => {
36- switch ( m . type ) {
37- case 'refreshState' : {
38- Logger . info ( 'Called refreshState' , 'serve-panel' ) ;
39- await this . refreshState ( ) ;
40- break ;
41- }
42-
43- case 'deleteServe' : {
44- Logger . info ( 'Called deleteServe' , 'serve-panel' ) ;
45- try {
46- await this . ts . serveDelete ( m . params ) ;
47- // eslint-disable-next-line @typescript-eslint/no-explicit-any
48- } catch ( e : any ) {
49- vscode . window . showErrorMessage ( 'Unable to delete serve' , e . message ) ;
50- }
51-
52- await this . refreshState ( ) ;
53- break ;
54- }
55-
56- case 'addServe' : {
57- Logger . info ( 'Called addServe' , 'serve-panel' ) ;
58- await this . ts . serveAdd ( m . params ) ;
59- await this . refreshState ( ) ;
60- break ;
61- }
62-
63- case 'setFunnel' : {
64- Logger . info ( 'Called setFunnel' , 'serve-panel' ) ;
65- try {
66- await this . ts . setFunnel ( parseInt ( m . params . port ) , m . params . allow ) ;
67- // eslint-disable-next-line @typescript-eslint/no-explicit-any
68- } catch ( e : any ) {
69- vscode . window . showErrorMessage ( 'Unable to toggle funnel' , e . message ) ;
70- }
71-
72- await this . refreshState ( ) ;
73- break ;
74- }
75-
76- case 'resetServe' : {
77- Logger . info ( 'Called resetServe' , 'serve-panel' ) ;
78- try {
79- await this . ts . serveDelete ( ) ;
80- // eslint-disable-next-line @typescript-eslint/no-explicit-any
81- } catch ( e : any ) {
82- vscode . window . showErrorMessage ( 'Unable to delete serve' , e . message ) ;
83- }
84-
85- await this . refreshState ( ) ;
30+ const { type, data } = m ;
31+ Logger . info ( `called ${ m . type } ` , 'serve-panel' ) ;
32+
33+ let response ;
34+ let error ;
35+
36+ switch ( type ) {
37+ case 'relayRequest' : {
38+ const { id, endpoint, method } = m ;
39+ Logger . info ( `${ id } , ${ endpoint } , ${ method } ` , 'serve-panel' ) ;
40+ response = await this . ts . performFetch ( endpoint , method , data ) ;
41+ Logger . info ( `response: ${ JSON . stringify ( response ) } ` , 'serve-panel' ) ;
42+ this . postMessage ( {
43+ id,
44+ endpoint,
45+ method,
46+ type : 'relayResponse' ,
47+ data : response ,
48+ } ) ;
8649 break ;
8750 }
8851
8952 case 'writeToClipboard' : {
90- Logger . info ( 'Called writeToClipboard' , 'serve-panel' ) ;
91- vscode . env . clipboard . writeText ( m . params . text ) ;
53+ vscode . env . clipboard . writeText ( m . data . text ) ;
9254 vscode . window . showInformationMessage ( 'Copied to clipboard' ) ;
9355 break ;
9456 }
9557
9658 case 'openLink' : {
97- Logger . info ( `Called openLink: ${ m . params . url } ` , 'serve-panel' ) ;
98- vscode . env . openExternal ( vscode . Uri . parse ( m . params . url ) ) ;
59+ vscode . env . openExternal ( vscode . Uri . parse ( m . data . url ) ) ;
9960 break ;
10061 }
10162
0 commit comments