UNPKG

suitest-js-api

Version:

Suitest is a test automation and device manipulation tool for living room devices and web browsers.

43 lines (36 loc) 987 B
/** * IPC client - child process */ const net = require('net'); const {write, getState, addListener, removeListener, handleMessage} = require('./ipcHelper'); const state = { socket: null, listeners: {}, }; const handleMessageFromServer = handleMessage(state); const disconnect = () => { if (state.socket) { state.socket.end(); state.socket.destroy(); state.socket = null; } }; /** * Connect child process to launcher IPC server * @param {number} port - ipc port number */ /* istanbul ignore next */ const connect = (port) => { state.socket = net.connect(port, '127.0.0.1'); state.socket.on('error', err => console.debug('IPC client socket error', err.errno, err)); state.socket.on('close', disconnect); state.socket.on('data', handleMessageFromServer); }; module.exports = { connect, disconnect, addListener: addListener(state), removeListener: removeListener(state), getState: getState(state), write: (msgId, data) => write(state.socket, msgId, data), };