@@ -8,6 +8,8 @@ import { ChannelStore } from './channel-store';
88import { ChannelManager } from './channel-manager' ;
99
1010const debug = require ( 'debug' ) ( 'hapiness:rabbitmq' ) ;
11+ const retryLimitErr : any = new Error ( 'Retry limit exceeded' ) ;
12+ retryLimitErr . code = 'RETRY_LIMIT_EXCEEDED' ;
1113
1214export class ConnectionManager extends EventEmitter {
1315 private _connection : Connection ;
@@ -99,7 +101,7 @@ export class ConnectionManager extends EventEmitter {
99101 . delay ( this . _options . retry . delay )
100102 . takeWhile ( ( attempts ) => attempts < this . _options . retry . maximum_attempts && ! this . _closingServer )
101103 . take ( this . _options . retry . maximum_attempts )
102- . concat ( Observable . throw ( new Error ( 'Retry limit exceeded' ) ) )
104+ . concat ( Observable . throw ( retryLimitErr ) )
103105 } ) ;
104106 }
105107
@@ -108,7 +110,6 @@ export class ConnectionManager extends EventEmitter {
108110 return Observable . of ( null ) ;
109111 }
110112
111-
112113 this . _closingServer = false ;
113114 this . _isConnecting = true ;
114115
@@ -117,6 +118,10 @@ export class ConnectionManager extends EventEmitter {
117118 this . emitEvent ( 'connecting' ) ;
118119 const obs = this . openConnection ( ) ;
119120 return obs
121+ . catch ( err => {
122+ this . emitEvent ( 'error' , err ) ;
123+ return Observable . throw ( err ) ;
124+ } )
120125 . flatMap ( con => {
121126 debug ( 'connected, creating default channel ...' ) ;
122127 this . _connection = con ;
0 commit comments