You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					45 lines
				
				946 B
			
		
		
			
		
	
	
					45 lines
				
				946 B
			| 
											3 years ago
										 | var events = require('events'); | ||
|  | var debug = require('debug')('nodemon'); | ||
|  | var util = require('util'); | ||
|  | 
 | ||
|  | var Bus = function () { | ||
|  |   events.EventEmitter.call(this); | ||
|  | }; | ||
|  | 
 | ||
|  | util.inherits(Bus, events.EventEmitter); | ||
|  | 
 | ||
|  | var bus = new Bus(); | ||
|  | 
 | ||
|  | // /*
 | ||
|  | var collected = {}; | ||
|  | bus.on('newListener', function (event) { | ||
|  |   debug('bus new listener: %s (%s)', event, bus.listeners(event).length); | ||
|  |   if (!collected[event]) { | ||
|  |     collected[event] = true; | ||
|  |     bus.on(event, function () { | ||
|  |       debug('bus emit: %s', event); | ||
|  |     }); | ||
|  |   } | ||
|  | }); | ||
|  | 
 | ||
|  | // */
 | ||
|  | 
 | ||
|  | // proxy process messages (if forked) to the bus
 | ||
|  | process.on('message', function (event) { | ||
|  |   debug('process.message(%s)', event); | ||
|  |   bus.emit(event); | ||
|  | }); | ||
|  | 
 | ||
|  | var emit = bus.emit; | ||
|  | 
 | ||
|  | // if nodemon was spawned via a fork, allow upstream communication
 | ||
|  | // via process.send
 | ||
|  | if (process.send) { | ||
|  |   bus.emit = function (event, data) { | ||
|  |     process.send({ type: event, data: data }); | ||
|  |     emit.apply(bus, arguments); | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = bus; |