@johnf/react-native-owl
Version:
Visual regression testing for React Native
46 lines (45 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.startWebSocketServer = exports.createWebSocketClient = void 0;
var _ws = _interopRequireDefault(require("ws"));
var _constants = require("./constants.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const startWebSocketServer = async logger => {
const wss = new _ws.default.Server({
port: _constants.WEBSOCKET_PORT
});
return new Promise(resolve => {
wss.on('connection', ws => {
ws.on('message', message => {
logger.info(`[OWL - WebSocket] The server received a message: ${message.toString()}`);
wss.clients.forEach(client => {
if (client !== ws && client.readyState === _ws.default.OPEN) {
client.send(message.toString());
}
});
});
ws.on('error', error => {
logger.error(`[OWL - WebSocket] Error:`, error);
});
});
wss.on('listening', () => {
logger.info(`[OWL - WebSocket] Listening on port ${wss.options.port}.`);
return resolve(wss);
});
});
};
exports.startWebSocketServer = startWebSocketServer;
const createWebSocketClient = async (logger, onMessage) => {
const wsClient = new _ws.default(`ws://localhost:${_constants.WEBSOCKET_PORT}`);
return new Promise(resolve => {
wsClient.on('open', () => resolve(wsClient));
wsClient.on('message', message => {
logger.info(`[OWL - WebSocket] The client received a message: ${message.toString()}.`);
onMessage(message.toString());
});
});
};
exports.createWebSocketClient = createWebSocketClient;
//# sourceMappingURL=websocket.js.map