UNPKG

946 BJavaScriptView Raw
1var events = require('events');
2var debug = require('debug')('nodemon');
3var util = require('util');
4
5var Bus = function () {
6 events.EventEmitter.call(this);
7};
8
9util.inherits(Bus, events.EventEmitter);
10
11var bus = new Bus();
12
13// /*
14var collected = {};
15bus.on('newListener', function (event) {
16 debug('bus new listener: %s (%s)', event, bus.listeners(event).length);
17 if (!collected[event]) {
18 collected[event] = true;
19 bus.on(event, function () {
20 debug('bus emit: %s', event);
21 });
22 }
23});
24
25// */
26
27// proxy process messages (if forked) to the bus
28process.on('message', function (event) {
29 debug('process.message(%s)', event);
30 bus.emit(event);
31});
32
33var emit = bus.emit;
34
35// if nodemon was spawned via a fork, allow upstream communication
36// via process.send
37if (process.send) {
38 bus.emit = function (event, data) {
39 process.send({ type: event, data: data });
40 emit.apply(bus, arguments);
41 };
42}
43
44module.exports = bus;