@zebrunner/javascript-agent-mocha
Version:
Zebrunner Agent for Mocha
47 lines (40 loc) • 1.15 kB
JavaScript
const ipc = require('node-ipc').default;
const startIPCServer = (subscribeServerEvents, unsubscribeServerEvents) => {
if (ipc.server) {
return;
}
ipc.config.id = 'zebrunneragent';
ipc.config.retry = 1500;
ipc.config.silent = false;
ipc.config.logInColor = true;
ipc.config.logDepth = 5;
ipc.config.logger = console.log;
ipc.config.maxConnections = 10;
ipc.serve(() => {
ipc.server.on('socket.disconnected', (socket, destroyedSocketID) => {
ipc.log(`Client ${destroyedSocketID} has been disconnected`);
});
ipc.server.on('destroy', () => {
ipc.log('Server has been destroyed');
});
subscribeServerEvents(ipc.server);
process.on('exit', () => {
ipc.log('Unsubscribe from all events and stop server on exit');
unsubscribeServerEvents(ipc.server);
ipc.server.stop();
});
});
ipc.server.start();
};
const stopIPCServer = (unsubscribeServerEvents) => {
if (!ipc.server) {
return;
}
ipc.log('Unsubscribe from all events and stop server');
unsubscribeServerEvents(ipc.server);
ipc.server.stop();
};
module.exports = {
startIPCServer,
stopIPCServer,
};