-
Notifications
You must be signed in to change notification settings - Fork 0
/
global.d.ts
143 lines (117 loc) · 2.68 KB
/
global.d.ts
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
* @Author: kuanggf
* @Date: 2022-03-15 16:31:36
* @LastEditors: kuanggf
* @LastEditTime: 2022-04-05 15:38:44
* @Description: file content
*/
interface FileLike {
name: string
path: string
}
interface FileLikeUpload extends FileLike {
total: number
loaded: number
percent: number
done: boolean
fail: boolean
link: string
w: number
h: number
}
interface ExtensionHostMessageOfProgress {
type: 'progress'
data: Array<FileLikeUpload>
}
// 设置项
interface SettingObject {
key: string
displayName: string
value?: string
placeholder?: string
required?: boolean
}
interface SettingObjectInput extends SettingObject {
type: 'input'
}
interface SettingObjectOption {
displayName: string
value: string
}
interface SettingObjectSelect extends SettingObject {
type: 'select'
options: SettingObjectOption[]
}
type SettingObjectWithField = SettingObjectInput | SettingObjectSelect
interface SettingExtensionHostMessageData {
extension: string
extensionDisplayName: string
setting: SettingObjectWithField[]
}
// 设置通信
interface ExtensionHostMessageOfSetting {
type: 'setting'
data: SettingExtensionHostMessageData
}
interface ProgressEventListener {
(data: Array<FileLikeUpload>): void
}
// 消息提示通信
interface ExtensionHostMessageOfTip {
type: 'tip'
data: MessageInfo
}
// 获取上传的列表
interface ExtensionHostMessageOfUploadList {
type: 'uploadList'
data: Array<FileLikeUpload>
}
type ExtensionHostMessage =
| ExtensionHostMessageOfProgress
| ExtensionHostMessageOfSetting
| ExtensionHostMessageOfTip
| ExtensionHostMessageOfUploadList
interface MessageInfo {
visible: boolean
type?: 'success' | 'error' | 'info'
message: string
duration?: number
}
interface Window {
showMessage(info: MessageInfo): void
}
interface MainApiCallback<DataType> {
(error: any, data: DataType): void
}
type SettingMap = Map<string, SettingExtensionHostMessageData>
interface OnSettingCallback {
(data: SettingMap): void
}
// 语言宿主发送的信息-语言列表
interface LangHostMessageOfLangsList {
type: 'langsList'
data: SettingObjectOption[]
}
interface LangData {
lang: string
langJsonData: string
}
// 语言宿主发送的信息-语言数据
interface LangHostMessageOfLangData {
type: 'langData'
data: LangData
}
// 语言宿主发送的信息-联合类型
type LangHostMessage = LangHostMessageOfLangsList | LangHostMessageOfLangData
interface OnLangsListChangeCallback {
(langs: SettingObjectOption[]): void
}
interface OnLangChangeCallback {
(data: LangData): void
}
interface OnShowMessageCallack {
(data: MessageInfo): void
}
interface OnUploadListCallback {
(data: FileLikeUpload[]): void
}