-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathapiTypes.d.ts
More file actions
73 lines (63 loc) · 2.83 KB
/
Copy pathapiTypes.d.ts
File metadata and controls
73 lines (63 loc) · 2.83 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
// deck
//
interface ActionProps {
/** 功能uuid */
uuid: string;
/** 功能实例uuid */
actionid: string;
/** 上位机按钮key */
key: string;
}
type Cmd = "run" | "add" | "clear" | "paramfromapp" | "paramfromplugin" | "setactive" | "state" | "setState" | "setImage" | "setTitle" | "openurl" | "openview" | "selectdialog" | "logMessage" | "hotkey" | "showAlert" | "sendToPropertyInspector" | "sendToPlugin" | "getSettings" | "setSettings" | "didReceiveSettings" | "setGlobalSettings" | "didReceiveGlobalSettings" | "getGlobalSettings" | "keydown" | "keyup" | "dialdown" | "dialup" | "dialrotate" | "setFeedbackLayout" | "setFeedback";
interface DeckRespDataBase<TCmd extends Cmd> {
cmd: TCmd;
/** 0-成功,非0-失败 */
code: number;
}
interface ParamRespData<TCmd extends Cmd> extends DeckRespDataBase<TCmd>, ActionProps {
param?: Record<string, any> | null;
}
interface SetActiveRespData extends ParamRespData<'setactive'> {
active: boolean;
}
interface StateRespData extends DeckRespDataBase<'state'> {
cmdType: 'NOTIFY';
param?: Record<string, any> | null;
}
interface OpenUrlRespData extends DeckRespDataBase<'openurl'> {
cmdType: 'NOTIFY';
url: string;
/** false-远端,true-本地 */
local?: boolean;
}
interface SelectDialogRespData extends DeckRespDataBase<'selectdialog'> {
cmdType: 'REQUEST';
type: 'file' | 'folder';
filter: string;
path: string;
}
// api
//
type UlanzideckApiData<TData> = TData & {
/** 唯一id */
context: string;
}
type UlanzideckParamRespData<TCmd extends Cmd> = Readonly<UlanzideckApiData<ParamRespData<TCmd>>>;
type UlanzideckClearRespData = Readonly<DeckRespDataBase<'clear'> & { param?: UlanzideckApiData<ActionProps>[] | null }>;
type UlanzideckSetActiveRespData = Readonly<UlanzideckApiData<SetActiveRespData>>;
type UlanzideckStateRespData = Readonly<UlanzideckApiData<StateRespData>>;
type UlanzideckOpenUrlRespData = Readonly<UlanzideckApiData<OpenUrlRespData>>;
type UlanzideckSelectDialogRespData = Readonly<UlanzideckApiData<SelectDialogRespData>>;
// events
//
export type OnConnected = (data: never) => void;
export type OnClose = () => void;
export type OnError = (error: string) => void;
export type OnCmdAddResp = (data: UlanzideckParamRespData<"add">) => void;
export type OnCmdParamFromAppResp = (data: UlanzideckParamRespData<"paramfromapp">) => void;
export type OnCmdParamFromPluginResp = (data: UlanzideckParamRespData<"paramfromplugin">) => void;
export type OnCmdRunResp = (data: UlanzideckParamRespData<'run'>) => void;
export type OnCmdClearResp = (data: UlanzideckClearRespData) => void;
export type OnCmdSetActiveResp = (data: UlanzideckSetActiveRespData) => void;
export type OnCmdStateResp = (data: UlanzideckStateRespData) => void;
export type OnCmdSelectDialogResp = (data: UlanzideckSelectDialogRespData) => void;