@@ -39,8 +39,9 @@ class Publisher {
3939
4040class Subscriber extends events . EventEmitter {
4141
42- constructor ( ) {
42+ constructor ( options ) {
4343 super ( ) ;
44+ this . disableFanOut = options . disableFanOut || false ;
4445 }
4546
4647 subscribe ( channel ) {
@@ -72,27 +73,32 @@ class Subscriber extends events.EventEmitter {
7273 }
7374
7475 _createSubscription ( topic , channel ) {
75-
76- const subscriptionUUID = uuid . v1 ( ) ;
77- var subscriptionName = `${ namePrefix } -${ channel } -${ subscriptionUUID } ` ;
76+ let subscriptionName ;
77+ if ( ! this . disableFanOut ) {
78+ const subscriptionUUID = uuid . v1 ( ) ;
79+ subscriptionName = `${ namePrefix } -${ channel } -${ subscriptionUUID } ` ;
80+ } else {
81+ subscriptionName = `${ namePrefix } -${ channel } ` ;
82+ }
7883
7984 topic . subscribe ( subscriptionName , ( err , subscription ) => {
80-
8185 if ( err ) {
8286 console . error ( `Failed to create subscription ${ err } ` ) ;
8387 return ;
8488 }
8589
8690 console . log ( `Subscription ${ subscription . name } created.` ) ;
8791
88- function deleteSubscription ( ) {
92+ const deleteSubscription = ( ) => {
8993 removeListeners ( ) ;
90- console . log ( 'Subscriber: Signal received, deleting subscription' ) ;
91- subscription . delete ( ) . then ( ( ) => {
92- console . log ( 'Subscriber: subscription deleted...' ) ;
93- } , ( err ) => {
94- console . error ( `Subscriber: Error deleting subscription` , err ) ;
95- } ) ;
94+ if ( ! this . disableFanOut ) {
95+ console . log ( 'Subscriber: Signal received, deleting subscription' ) ;
96+ subscription . delete ( ) . then ( ( ) => {
97+ console . log ( 'Subscriber: subscription deleted...' ) ;
98+ } , ( err ) => {
99+ console . error ( `Subscriber: Error deleting subscription` , err ) ;
100+ } ) ;
101+ }
96102 }
97103
98104 function messageHandler ( message ) {
@@ -121,6 +127,7 @@ class Subscriber extends events.EventEmitter {
121127 function removeListeners ( ) {
122128 subscription . removeListener ( 'message' , onMessage ) ;
123129 subscription . removeListener ( 'error' , onError ) ;
130+
124131 process . removeListener ( 'SIGTERM' , deleteSubscription ) ;
125132 process . removeListener ( 'SIGINT' , deleteSubscription ) ;
126133 }
@@ -140,8 +147,8 @@ function createPublisher() {
140147 return new Publisher ( emitter ) ;
141148}
142149
143- function createSubscriber ( ) {
144- return new Subscriber ( ) ;
150+ function createSubscriber ( options ) {
151+ return new Subscriber ( options ) ;
145152}
146153
147154module . exports = {
0 commit comments