1+ import { ipcMain } from "electron" ;
2+
13import * as log from "fancy-log" ;
24
3- import { ipcMain } from "electron " ;
5+ import { IpcService } from "./ipcService " ;
46
5- import { IIPCMessage , IPCMessageType , mainChannel , renderChannel } from "./ipc" ;
7+ import { IIPCMessage } from "./ipc" ;
68
7- export class MainService {
89
9- public register ( ) : void {
10- ipcMain . on ( mainChannel , ( event : Electron . IpcMainEvent , ...args : any [ ] ) : void => {
11- if ( args && args . length === 1 ) {
12- const ipcMessage : IIPCMessage < any > = args [ 0 ] ;
13- this . handleMainChannel ( event , ipcMessage ) ;
14- } else {
15- log . warn ( event , args ) ;
16- }
17- } ) ;
10+ export class MainService extends IpcService < Electron . IpcMainEvent > {
11+
12+ public constructor ( ) {
13+ super ( ) ;
14+ this . register ( ipcMain , "main-channel" ) ;
1815 }
1916
20- private handleMainChannel < T > ( event : Electron . IpcMainEvent , message : IIPCMessage < T > ) : void {
17+ protected handleMessage < T > ( event : Electron . IpcMainEvent , message : IIPCMessage < T > ) : void {
2118 switch ( message . type ) {
2219 case "ping" :
2320 log . info ( message ) ;
24- this . send ( event . sender , "pong" , message . data ) ;
25- this . send ( event . sender , "ping" , message . data ) ;
21+ this . send ( event . sender , "main-channel" , " pong", message . data ) ;
22+ this . send ( event . sender , "main-channel" , " ping", message . data ) ;
2623 break ;
2724 case "pong" :
2825 log . info ( message ) ;
@@ -31,12 +28,4 @@ export class MainService {
3128 log . warn ( message ) ;
3229 }
3330 }
34-
35- private send < T > ( sender : Electron . WebContents , type : IPCMessageType , data : T ) : void {
36- sender . send ( renderChannel , {
37- data,
38- timestamp : new Date ( ) ,
39- type,
40- } as IIPCMessage < T > ) ;
41- }
4231}
0 commit comments