@@ -20,7 +20,7 @@ export type iposMessagingMessage = {
20
20
const mustHaveSendError = new Error ( `Process must have a \`.send()\` method.` )
21
21
22
22
export default class IPOSMessaging {
23
- private listeners : Map < iposMessagingType | 'any' , Array < iposMessagingCallback > >
23
+ private listeners : Map < iposMessagingType , Array < iposMessagingCallback > >
24
24
private nonIPOSListeners : Set < ( message : any ) => any >
25
25
private process : ChildProcess | NodeJS . Process
26
26
@@ -30,32 +30,22 @@ export default class IPOSMessaging {
30
30
if ( ! process . send ) throw mustHaveSendError
31
31
this . process = process
32
32
this . process . on ( 'message' , ( message : iposMessagingMessage ) => {
33
- try {
34
- if ( message . protocol !== 'ipos' )
35
- // not a message from ipos
36
- return this . nonIPOSListeners . forEach ( callback => callback ( message ) )
33
+ if ( ! message || typeof message !== 'object' || message . protocol !== 'ipos' )
34
+ // not a message from ipos
35
+ return this . nonIPOSListeners . forEach ( callback => callback ( message ) )
37
36
38
- if ( message . type === 'ready' ) {
39
- this . send ( 'register' )
40
- return
41
- }
37
+ if ( message . type === 'ready' ) {
38
+ this . send ( 'register' )
39
+ return
40
+ }
42
41
43
- for ( const property in message ) {
44
- if ( ! message . hasOwnProperty ( property ) ) continue
45
- message [ property ] = deserialize ( message [ property ] )
46
- }
42
+ for ( const property in message ) {
43
+ message [ property ] = deserialize ( message [ property ] )
44
+ }
47
45
48
- if ( this . listeners . has ( 'any' ) ) {
49
- this . listeners . get ( 'any' )
50
- ?. forEach ( callback => callback ( message ) )
51
- }
52
- if ( this . listeners . has ( message . type ) ) {
53
- this . listeners . get ( message . type )
54
- ?. forEach ( callback => callback ( message ) )
55
- }
56
- } catch ( e ) {
57
- // not a message from ipos
58
- this . nonIPOSListeners . forEach ( callback => callback ( message ) )
46
+ if ( this . listeners . has ( message . type ) ) {
47
+ this . listeners . get ( message . type )
48
+ ?. forEach ( callback => callback ( message ) )
59
49
}
60
50
} )
61
51
}
@@ -65,21 +55,20 @@ export default class IPOSMessaging {
65
55
}*/
66
56
67
57
send ( type : iposMessagingType , data ?: { } ) {
68
- if ( ! this . process . send ) throw mustHaveSendError
69
- this . process . send ( {
58
+ ( this . process as ChildProcess ) . send ( {
70
59
protocol : 'ipos' ,
71
60
type,
72
61
...serialize ( data )
73
62
} )
74
63
}
75
64
76
- listenForType ( type : iposMessagingType | 'any' , callback : iposMessagingCallback ) {
65
+ listenForType ( type : iposMessagingType , callback : iposMessagingCallback ) {
77
66
let callbacks : Array < iposMessagingCallback > = this . listeners . get ( type ) ?? [ ]
78
67
callbacks . push ( callback )
79
68
this . listeners . set ( type , callbacks )
80
69
}
81
70
82
- listenOnceForType ( type : iposMessagingType | 'any' , callback : iposMessagingCallback ) {
71
+ listenOnceForType ( type : iposMessagingType , callback : iposMessagingCallback ) {
83
72
let callbacks : Array < iposMessagingCallback > = this . listeners . get ( type ) ?? [ ]
84
73
const onceCallback = ( message : iposMessagingMessage ) => {
85
74
delete callbacks [ callbacks . indexOf ( onceCallback ) ]
@@ -89,10 +78,6 @@ export default class IPOSMessaging {
89
78
this . listeners . set ( type , callbacks )
90
79
}
91
80
92
- listenForAll ( callback : iposMessagingCallback ) {
93
- this . listenForType ( 'any' , callback )
94
- }
95
-
96
81
destroy ( ) {
97
82
this . listeners . clear ( )
98
83
this . nonIPOSListeners . clear ( )
0 commit comments