1
- import { ExtensionEventMessageTopicType } from '@yuanzhibang/common' ;
1
+ import { ExtensionLifecycleEventMessageTopic , ExtensionRendererMessageTopic } from '@yuanzhibang/common' ;
2
2
declare const yzb : any ;
3
3
4
4
export interface IpcData {
@@ -108,11 +108,11 @@ export class IpcRendererWorker {
108
108
/**
109
109
* 内部变量无需关注,on保存的回调保存map
110
110
*/
111
- messageCallbackMap = new Map < string , ( message : any ) => void > ( ) ;
111
+ private messageCallbackMap = new Map < string , ( message : any ) => void > ( ) ;
112
112
/**
113
113
* 内部变量无需关注,once保存的回调保存map
114
114
*/
115
- onceMessageCallbackMap = new Map < string , ( message : any ) => void > ( ) ;
115
+ private onceMessageCallbackMap = new Map < string , ( message : any ) => void > ( ) ;
116
116
117
117
/**
118
118
* 创建类实例
@@ -129,79 +129,79 @@ export class IpcRendererWorker {
129
129
* @param 对应生命周期需要执行的回调
130
130
*/
131
131
onStart ( callback : ( message : any ) => void ) : void {
132
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_START , callback ) ;
132
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_START , callback ) ;
133
133
}
134
134
135
135
/**
136
136
* 在process将要初始化的时候调用,代表已经进入process处理阶段,该回调由extension调用触发
137
137
* @param 对应生命周期需要执行的回调
138
138
*/
139
139
onWillInit ( callback : ( message : any ) => void ) : void {
140
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_WILL_INIT , callback ) ;
140
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_WILL_INIT , callback ) ;
141
141
}
142
142
143
143
/**
144
144
* 在process完成初始化的时候调用,代表已经完成process初始化,该回调由extension调用触发
145
145
* @param 对应生命周期需要执行的回调
146
146
*/
147
147
onInit ( callback : ( message : any ) => void ) : void {
148
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_INIT , callback ) ;
148
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_INIT , callback ) ;
149
149
}
150
150
151
151
/**
152
152
* 在process主动退出前调用,该回调由extension调用触发
153
153
* @param 对应生命周期需要执行的回调
154
154
*/
155
155
onWillExit ( callback : ( message : any ) => void ) : void {
156
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_WILL_EXIT , callback ) ;
156
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_WILL_EXIT , callback ) ;
157
157
}
158
158
159
159
/**
160
160
* 在process退出时调用,该回调由猿之棒客户端触发,由node child_process exit事件触发,具体参考:https://nodejs.org/api/child_process.html#event-exit
161
161
* @param 对应生命周期需要执行的回调
162
162
*/
163
163
onExit ( callback : ( message : any ) => void ) : void {
164
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_EXIT , callback ) ;
164
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_EXIT , callback ) ;
165
165
}
166
166
167
167
/**
168
168
* 在process出现错误时调用,该回调由猿之棒客户端触发,由node child_process error事件触发,具体参考:https://nodejs.org/api/child_process.html#event-error
169
169
* @param 对应生命周期需要执行的回调
170
170
*/
171
171
onError ( callback : ( message : any ) => void ) : void {
172
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_ERROR , callback ) ;
172
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_ERROR , callback ) ;
173
173
}
174
174
175
175
/**
176
176
* 在process关闭时调用,该回调由猿之棒客户端触发,由node child_process close事件触发,具体参考:https://nodejs.org/api/child_process.html#event-close
177
177
* @param 对应生命周期需要执行的回调
178
178
*/
179
179
onClose ( callback : ( message : any ) => void ) : void {
180
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_CLOSE , callback ) ;
180
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_CLOSE , callback ) ;
181
181
}
182
182
183
183
/**
184
184
* 在process触发stderr时调用,该回调由猿之棒客户端触发,由node child_process.stderr data事件触发,具体参考:https://nodejs.org/api/child_process.html#subprocessstderr
185
185
* @param 对应生命周期需要执行的回调
186
186
*/
187
187
onStdError ( callback : ( message : any ) => void ) : void {
188
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_STDERR , callback ) ;
188
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_STDERR , callback ) ;
189
189
}
190
190
191
191
/**
192
192
* 在process触发stdout时调用,该回调由猿之棒客户端触发,由node child_process.stdout data事件触发,具体参考:https://nodejs.org/api/child_process.html#subprocessstdout
193
193
* @param 对应生命周期需要执行的回调
194
194
*/
195
195
onStdOut ( callback : ( message : any ) => void ) : void {
196
- this . messageCallbackMap . set ( ExtensionEventMessageTopicType . ON_STDOUT , callback ) ;
196
+ this . messageCallbackMap . set ( ExtensionLifecycleEventMessageTopic . ON_STDOUT , callback ) ;
197
197
}
198
198
199
199
/**
200
200
* 内部方法无需关注,用来响应由IpcRenderer转发process.on('message')消息的方法
201
201
* @param topic 消息的topic
202
202
* @param message topic消息的消息体
203
203
*/
204
- onMessage ( topic : string , message : any ) : void {
204
+ processMessage ( topic : string , message : any ) : void {
205
205
if ( this . messageCallbackMap . has ( topic ) ) {
206
206
const callback = this . messageCallbackMap . get ( topic ) ;
207
207
if ( callback ) {
@@ -316,6 +316,25 @@ export class IpcRendererWorker {
316
316
yzb . native . sendProcessMessage ( data ) ;
317
317
} ) ;
318
318
}
319
+
320
+ /**
321
+ * 向进程发送用户退出消息
322
+ * @param params 退出的参数
323
+ * @returns promise process收到消息后给renderer的回调promise
324
+ */
325
+ exit ( params : any = null ) : Promise < any > {
326
+ return this . sendPromise ( ExtensionRendererMessageTopic . USER_EXIT , params ) ;
327
+ }
328
+
329
+ /**
330
+ * 向进程发送获取属性的消息
331
+ * @param params 获取属性需要的参数,可以为null
332
+ * @returns promise process收到消息后给renderer的回调promise
333
+ */
334
+ getProperty ( params : any = null ) : Promise < any > {
335
+ return this . sendPromise ( ExtensionRendererMessageTopic . GET_PROPERTY , params ) ;
336
+ }
337
+
319
338
}
320
339
321
340
@@ -327,11 +346,11 @@ export class IpcRenderer {
327
346
/**
328
347
* 内部变量无需关注,存储worker的map
329
348
*/
330
- messageWorkerMap = new Map < string , IpcRendererWorker > ( ) ;
349
+ private messageWorkerMap = new Map < string , IpcRendererWorker > ( ) ;
331
350
/**
332
351
* 内部变量无需关注,除了topic消息以外,其他拓展进程发送来的消息监听回调
333
352
*/
334
- otherMessageCallback : ( ( message : any ) => void ) | null = null ;
353
+ private otherMessageCallback : ( ( message : any ) => void ) | null = null ;
335
354
336
355
/**
337
356
* 创建类实例
@@ -356,7 +375,7 @@ export class IpcRenderer {
356
375
if ( this . messageWorkerMap . has ( exeName ) ) {
357
376
const worker = this . messageWorkerMap . get ( exeName ) ;
358
377
if ( worker !== null && typeof worker === 'object' ) {
359
- worker . onMessage ( messageTopic , messageTopicMessage ) ;
378
+ worker . processMessage ( messageTopic , messageTopicMessage ) ;
360
379
} else {
361
380
this . messageWorkerMap . delete ( exeName ) ;
362
381
}
0 commit comments