1 | var events = require('events');
|
2 | var debug = require('debug')('nodemon');
|
3 | var util = require('util');
|
4 |
|
5 | var Bus = function () {
|
6 | events.EventEmitter.call(this);
|
7 | };
|
8 |
|
9 | util.inherits(Bus, events.EventEmitter);
|
10 |
|
11 | var bus = new Bus();
|
12 |
|
13 |
|
14 | var collected = {};
|
15 | bus.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 |
|
28 | process.on('message', function (event) {
|
29 | debug('process.message(%s)', event);
|
30 | bus.emit(event);
|
31 | });
|
32 |
|
33 | var emit = bus.emit;
|
34 |
|
35 |
|
36 |
|
37 | if (process.send) {
|
38 | bus.emit = function (event, data) {
|
39 | process.send({ type: event, data: data });
|
40 | emit.apply(bus, arguments);
|
41 | };
|
42 | }
|
43 |
|
44 | module.exports = bus;
|