-
Notifications
You must be signed in to change notification settings - Fork 380
Expand file tree
/
Copy pathcallbacks.ts
More file actions
115 lines (105 loc) · 2.26 KB
/
callbacks.ts
File metadata and controls
115 lines (105 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import type { Result } from './result'
export type CallbackShape = Record<string, any>
export type Callback = {
openFile: {
uri: string
}
rpcResponse: RPCResponse
} & CallbackShape
/**
* A tuple type representing a callback event with its associated payload.
* The first element is the callback key (e.g., 'openFile', 'formatProject').
* The second element is the payload type associated with that key.
*
* Example:
* const openFileEvent: CallbackEvent<'openFile'> = ['openFile', { path: '/path/to/file' }];
*/
export type CallbackEvent = {
[K in keyof Callback]: { key: K; payload: Callback[K] }
}[keyof Callback]
export type VSCodeCallbackShape = Record<string, any>
/**
* A tuple type representing a VSCode event with its associated payload.
*/
export type VSCodeCallback = {
changeFocusOnFile: {
path: string
}
savedFile: {
fileUri: string
}
rpcRequest: RPCRequest
} & VSCodeCallbackShape
export type VSCodeEvent = {
[K in keyof VSCodeCallback]: { key: K; payload: VSCodeCallback[K] }
}[keyof VSCodeCallback]
type RPCMethodsShape = Record<string, { params: any; result: any }>
export type RPCMethods = {
get_active_file: {
params: {}
result: {
fileUri?: string
}
}
api_query: {
params: {
url: string
method: string
params: any
body: any
}
result: any
}
get_selected_model: {
params: {}
result: {
selectedModel?: any
}
}
get_all_models: {
params: {}
result: {
ok: boolean
models?: any[]
error?: string
}
}
set_selected_model: {
params: {
model: any
}
result: {
ok: boolean
selectedModel?: any
}
}
get_environments: {
params: {}
result: {
ok: boolean
environments?: Record<string, any>
error?: string
}
}
run_table_diff: {
params: {
sourceModel: string
sourceEnvironment: string
targetEnvironment: string
}
result: {
ok: boolean
data?: any
error?: string
}
}
} & RPCMethodsShape
export type RPCRequest = {
requestId: string
method: keyof RPCMethods
params: RPCMethods[keyof RPCMethods]['params']
}
export type RPCResponse = {
requestId: string
result: Result<RPCMethods[keyof RPCMethods]['result'], string>
}