33 lines
743 B
JavaScript
33 lines
743 B
JavaScript
|
/**
|
||
|
* Checks if the given message is an internal node-dev message.
|
||
|
*/
|
||
|
function isNodeDevMessage(m) {
|
||
|
return m.cmd === 'NODE_DEV';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Sends a message to the given process.
|
||
|
*/
|
||
|
exports.send = function (m, dest) {
|
||
|
m.cmd = 'NODE_DEV';
|
||
|
if (!dest) dest = process;
|
||
|
if (dest.send) dest.send(m);
|
||
|
};
|
||
|
|
||
|
exports.on = function (proc, type, cb) {
|
||
|
function handleMessage(m) {
|
||
|
if (isNodeDevMessage(m) && type in m) cb(m);
|
||
|
}
|
||
|
proc.on('internalMessage', handleMessage);
|
||
|
proc.on('message', handleMessage);
|
||
|
};
|
||
|
|
||
|
exports.relay = function (src, dest) {
|
||
|
if (!dest) dest = process;
|
||
|
function relayMessage(m) {
|
||
|
if (isNodeDevMessage(m)) dest.send(m);
|
||
|
}
|
||
|
src.on('internalMessage', relayMessage);
|
||
|
src.on('message', relayMessage);
|
||
|
};
|