1- import type {
2- GetTablesRequest ,
3- GetColumnsRequest ,
4- RunQueryRequest ,
5- ExpandTableResultRequest ,
6- SetTabTitleRequest ,
7- GetViewStateRequest ,
8- SetViewStateRequest ,
9- OpenExternalRequest ,
10- GetEncryptedDataRequest ,
11- SetEncryptedDataRequest ,
12- GetDataRequest ,
13- SetDataRequest ,
14- } from "./requestTypes" ;
15- import type {
16- GetTablesResponse ,
17- GetColumnsResponse ,
18- GetConnectionInfoResponse ,
19- GetAllTabsResponse ,
20- RunQueryResponse ,
21- ExpandTableResultResponse ,
22- SetTabTitleResponse ,
23- GetViewStateResponse ,
24- SetViewStateResponse ,
25- OpenExternalResponse ,
26- GetEncryptedDataResponse ,
27- SetEncryptedDataResponse ,
28- GetDataResponse ,
29- SetDataResponse ,
30- } from "./responseTypes" ;
1+ import type { PluginRequestPayload } from "./requestTypes" ;
312import { generateUUID } from "./utils" ;
323
334// Define a custom import.meta interface for TypeScript
@@ -42,7 +13,8 @@ declare global {
4213const pendingRequests = new Map <
4314 string ,
4415 {
45- name : string ;
16+ // The whole payload is kept just in case for debugging
17+ payload : PluginRequestPayload ;
4618 resolve : ( value : any ) => void ;
4719 reject : ( reason ?: any ) => void ;
4820 }
@@ -72,12 +44,12 @@ window.addEventListener("message", (event) => {
7244 }
7345
7446 if ( id && pendingRequests . has ( id ) ) {
75- const { resolve, reject, name } = pendingRequests . get ( id ) ! ;
47+ const { resolve, reject, payload } = pendingRequests . get ( id ) ! ;
7648 pendingRequests . delete ( id ) ;
7749
7850 if ( debugComms ) {
7951 const time = new Date ( ) . toLocaleTimeString ( "en-GB" ) ;
80- console . groupCollapsed ( `${ time } [RESPONSE] ${ name } ` ) ;
52+ console . groupCollapsed ( `${ time } [RESPONSE] ${ payload . name } ` ) ;
8153 console . log ( "Result:" , result ) ;
8254 if ( error ) console . error ( "Error:" , error ) ;
8355 console . groupEnd ( ) ;
@@ -91,34 +63,23 @@ window.addEventListener("message", (event) => {
9163 }
9264} ) ;
9365
94- export async function request ( name : "getTables" , args ?: GetTablesRequest [ "args" ] ) : Promise < GetTablesResponse > ;
95- export async function request ( name : "getColumns" , args : GetColumnsRequest [ "args" ] ) : Promise < GetColumnsResponse > ;
96- export async function request ( name : "getConnectionInfo" ) : Promise < GetConnectionInfoResponse > ;
97- export async function request ( name : "getAllTabs" ) : Promise < GetAllTabsResponse > ;
98- export async function request ( name : "runQuery" , args : RunQueryRequest [ "args" ] ) : Promise < RunQueryResponse > ;
99- export async function request ( name : "expandTableResult" , args : ExpandTableResultRequest [ "args" ] ) : Promise < ExpandTableResultResponse > ;
100- export async function request ( name : "setTabTitle" , args : SetTabTitleRequest [ "args" ] ) : Promise < SetTabTitleResponse > ;
101- export async function request < T extends unknown > ( name : "getViewState" , args : GetViewStateRequest [ "args" ] ) : Promise < GetViewStateResponse < T > > ;
102- export async function request < T extends unknown > ( name : "setViewState" , args : SetViewStateRequest < T > [ "args" ] ) : Promise < SetViewStateResponse > ;
103- export async function request < T extends unknown > ( name : "openExternal" , args : OpenExternalRequest [ "args" ] ) : Promise < OpenExternalResponse > ;
104- export async function request < T extends unknown > ( name : "getData" , args : GetDataRequest [ "args" ] ) : Promise < GetDataResponse < T > > ;
105- export async function request < T extends unknown > ( name : "setData" , args : SetDataRequest < T > [ "args" ] ) : Promise < SetDataResponse > ;
106- export async function request < T extends unknown > ( name : "getEncryptedData" , args : GetEncryptedDataRequest [ "args" ] ) : Promise < GetEncryptedDataResponse < T > > ;
107- export async function request < T extends unknown > ( name : "setEncryptedData" , args : SetEncryptedDataRequest < T > [ "args" ] ) : Promise < SetEncryptedDataResponse > ;
108- export async function request ( name : unknown , args ?: unknown ) : Promise < unknown > {
66+ export async function request ( payload : any ) : Promise < any > {
67+ const fullPayload = {
68+ id : generateUUID ( ) ,
69+ ...payload ,
70+ } as PluginRequestPayload ;
71+
10972 if ( debugComms ) {
11073 const time = new Date ( ) . toLocaleTimeString ( "en-GB" ) ;
111- console . groupCollapsed ( `${ time } [REQUEST] ${ name } ` ) ;
112- console . log ( "Args:" , args ) ;
74+ console . groupCollapsed ( `${ time } [REQUEST] ${ payload . name } ` ) ;
75+ console . log ( "Args:" , payload . args ) ;
11376 console . groupEnd ( ) ;
11477 }
11578
11679 return new Promise < any > ( ( resolve , reject ) => {
11780 try {
118- const id = generateUUID ( ) ;
119- const data = { id, name, args } ;
120- pendingRequests . set ( id , { name : name as string , resolve, reject } ) ;
121- window . parent . postMessage ( data , "*" ) ;
81+ pendingRequests . set ( fullPayload . id , { payload : fullPayload , resolve, reject } ) ;
82+ window . parent . postMessage ( payload , "*" ) ;
12283 } catch ( e ) {
12384 reject ( e ) ;
12485 }
0 commit comments