Skip to content

Commit 54f9f16

Browse files
committed
升级依赖库添加exit等两个方法
1 parent 90fd8dc commit 54f9f16

File tree

3 files changed

+43
-24
lines changed

3 files changed

+43
-24
lines changed

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@
3636
}
3737
},
3838
"dependencies": {
39-
"@yuanzhibang/common": "^0.0.2"
39+
"@yuanzhibang/common": "^0.0.3"
4040
}
4141
}

src/index.ts

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ExtensionEventMessageTopicType } from '@yuanzhibang/common';
1+
import { ExtensionLifecycleEventMessageTopic, ExtensionRendererMessageTopic } from '@yuanzhibang/common';
22
declare const yzb: any;
33

44
export interface IpcData {
@@ -108,11 +108,11 @@ export class IpcRendererWorker {
108108
/**
109109
* 内部变量无需关注,on保存的回调保存map
110110
*/
111-
messageCallbackMap = new Map<string, (message: any) => void>();
111+
private messageCallbackMap = new Map<string, (message: any) => void>();
112112
/**
113113
* 内部变量无需关注,once保存的回调保存map
114114
*/
115-
onceMessageCallbackMap = new Map<string, (message: any) => void>();
115+
private onceMessageCallbackMap = new Map<string, (message: any) => void>();
116116

117117
/**
118118
* 创建类实例
@@ -129,79 +129,79 @@ export class IpcRendererWorker {
129129
* @param 对应生命周期需要执行的回调
130130
*/
131131
onStart(callback: (message: any) => void): void {
132-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_START, callback);
132+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_START, callback);
133133
}
134134

135135
/**
136136
* 在process将要初始化的时候调用,代表已经进入process处理阶段,该回调由extension调用触发
137137
* @param 对应生命周期需要执行的回调
138138
*/
139139
onWillInit(callback: (message: any) => void): void {
140-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_WILL_INIT, callback);
140+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_WILL_INIT, callback);
141141
}
142142

143143
/**
144144
* 在process完成初始化的时候调用,代表已经完成process初始化,该回调由extension调用触发
145145
* @param 对应生命周期需要执行的回调
146146
*/
147147
onInit(callback: (message: any) => void): void {
148-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_INIT, callback);
148+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_INIT, callback);
149149
}
150150

151151
/**
152152
* 在process主动退出前调用,该回调由extension调用触发
153153
* @param 对应生命周期需要执行的回调
154154
*/
155155
onWillExit(callback: (message: any) => void): void {
156-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_WILL_EXIT, callback);
156+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_WILL_EXIT, callback);
157157
}
158158

159159
/**
160160
* 在process退出时调用,该回调由猿之棒客户端触发,由node child_process exit事件触发,具体参考:https://nodejs.org/api/child_process.html#event-exit
161161
* @param 对应生命周期需要执行的回调
162162
*/
163163
onExit(callback: (message: any) => void): void {
164-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_EXIT, callback);
164+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_EXIT, callback);
165165
}
166166

167167
/**
168168
* 在process出现错误时调用,该回调由猿之棒客户端触发,由node child_process error事件触发,具体参考:https://nodejs.org/api/child_process.html#event-error
169169
* @param 对应生命周期需要执行的回调
170170
*/
171171
onError(callback: (message: any) => void): void {
172-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_ERROR, callback);
172+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_ERROR, callback);
173173
}
174174

175175
/**
176176
* 在process关闭时调用,该回调由猿之棒客户端触发,由node child_process close事件触发,具体参考:https://nodejs.org/api/child_process.html#event-close
177177
* @param 对应生命周期需要执行的回调
178178
*/
179179
onClose(callback: (message: any) => void): void {
180-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_CLOSE, callback);
180+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_CLOSE, callback);
181181
}
182182

183183
/**
184184
* 在process触发stderr时调用,该回调由猿之棒客户端触发,由node child_process.stderr data事件触发,具体参考:https://nodejs.org/api/child_process.html#subprocessstderr
185185
* @param 对应生命周期需要执行的回调
186186
*/
187187
onStdError(callback: (message: any) => void): void {
188-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_STDERR, callback);
188+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_STDERR, callback);
189189
}
190190

191191
/**
192192
* 在process触发stdout时调用,该回调由猿之棒客户端触发,由node child_process.stdout data事件触发,具体参考:https://nodejs.org/api/child_process.html#subprocessstdout
193193
* @param 对应生命周期需要执行的回调
194194
*/
195195
onStdOut(callback: (message: any) => void): void {
196-
this.messageCallbackMap.set(ExtensionEventMessageTopicType.ON_STDOUT, callback);
196+
this.messageCallbackMap.set(ExtensionLifecycleEventMessageTopic.ON_STDOUT, callback);
197197
}
198198

199199
/**
200200
* 内部方法无需关注,用来响应由IpcRenderer转发process.on('message')消息的方法
201201
* @param topic 消息的topic
202202
* @param message topic消息的消息体
203203
*/
204-
onMessage(topic: string, message: any): void {
204+
processMessage(topic: string, message: any): void {
205205
if (this.messageCallbackMap.has(topic)) {
206206
const callback = this.messageCallbackMap.get(topic);
207207
if (callback) {
@@ -316,6 +316,25 @@ export class IpcRendererWorker {
316316
yzb.native.sendProcessMessage(data);
317317
});
318318
}
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+
319338
}
320339

321340

@@ -327,11 +346,11 @@ export class IpcRenderer {
327346
/**
328347
* 内部变量无需关注,存储worker的map
329348
*/
330-
messageWorkerMap = new Map<string, IpcRendererWorker>();
349+
private messageWorkerMap = new Map<string, IpcRendererWorker>();
331350
/**
332351
* 内部变量无需关注,除了topic消息以外,其他拓展进程发送来的消息监听回调
333352
*/
334-
otherMessageCallback: ((message: any) => void) | null = null;
353+
private otherMessageCallback: ((message: any) => void) | null = null;
335354

336355
/**
337356
* 创建类实例
@@ -356,7 +375,7 @@ export class IpcRenderer {
356375
if (this.messageWorkerMap.has(exeName)) {
357376
const worker = this.messageWorkerMap.get(exeName);
358377
if (worker !== null && typeof worker === 'object') {
359-
worker.onMessage(messageTopic, messageTopicMessage);
378+
worker.processMessage(messageTopic, messageTopicMessage);
360379
} else {
361380
this.messageWorkerMap.delete(exeName);
362381
}

0 commit comments

Comments
 (0)