@@ -20,7 +20,7 @@ export type iposMessagingMessage = {
2020const mustHaveSendError = new Error ( `Process must have a \`.send()\` method.` )
2121
2222export default class IPOSMessaging {
23- private listeners : Map < iposMessagingType | 'any' , Array < iposMessagingCallback > >
23+ private listeners : Map < iposMessagingType , Array < iposMessagingCallback > >
2424 private nonIPOSListeners : Set < ( message : any ) => any >
2525 private process : ChildProcess | NodeJS . Process
2626
@@ -30,32 +30,22 @@ export default class IPOSMessaging {
3030 if ( ! process . send ) throw mustHaveSendError
3131 this . process = process
3232 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 ) )
3736
38- if ( message . type === 'ready' ) {
39- this . send ( 'register' )
40- return
41- }
37+ if ( message . type === 'ready' ) {
38+ this . send ( 'register' )
39+ return
40+ }
4241
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+ }
4745
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 ) )
5949 }
6050 } )
6151 }
@@ -65,21 +55,20 @@ export default class IPOSMessaging {
6555 }*/
6656
6757 send ( type : iposMessagingType , data ?: { } ) {
68- if ( ! this . process . send ) throw mustHaveSendError
69- this . process . send ( {
58+ ( this . process as ChildProcess ) . send ( {
7059 protocol : 'ipos' ,
7160 type,
7261 ...serialize ( data )
7362 } )
7463 }
7564
76- listenForType ( type : iposMessagingType | 'any' , callback : iposMessagingCallback ) {
65+ listenForType ( type : iposMessagingType , callback : iposMessagingCallback ) {
7766 let callbacks : Array < iposMessagingCallback > = this . listeners . get ( type ) ?? [ ]
7867 callbacks . push ( callback )
7968 this . listeners . set ( type , callbacks )
8069 }
8170
82- listenOnceForType ( type : iposMessagingType | 'any' , callback : iposMessagingCallback ) {
71+ listenOnceForType ( type : iposMessagingType , callback : iposMessagingCallback ) {
8372 let callbacks : Array < iposMessagingCallback > = this . listeners . get ( type ) ?? [ ]
8473 const onceCallback = ( message : iposMessagingMessage ) => {
8574 delete callbacks [ callbacks . indexOf ( onceCallback ) ]
@@ -89,10 +78,6 @@ export default class IPOSMessaging {
8978 this . listeners . set ( type , callbacks )
9079 }
9180
92- listenForAll ( callback : iposMessagingCallback ) {
93- this . listenForType ( 'any' , callback )
94- }
95-
9681 destroy ( ) {
9782 this . listeners . clear ( )
9883 this . nonIPOSListeners . clear ( )
0 commit comments