UNPKG

creevey

Version:

creevey is a tool for automated visual testing, that tightly integrated with storybook

69 lines (57 loc) 5.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = creeveyApi; var _ws = _interopRequireDefault(require("ws")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function broadcast(wss, message) { wss.clients.forEach(ws => { if (ws.readyState === _ws.default.OPEN) { ws.send(JSON.stringify(message)); } }); } function creeveyApi(runner) { return { subscribe(wss) { runner.on('update', payload => broadcast(wss, { type: 'update', payload })); }, handleMessage(ws, message) { if (typeof message != 'string') { console.log('[WebSocket]:', 'unhandled message', message); return; } const command = JSON.parse(message); // console.log("[WebSocket]:", "message", message); switch (command.type) { case 'status': { ws.send(JSON.stringify({ type: 'status', payload: runner.status })); return; } case 'start': { runner.start(command.payload); return; } case 'stop': { runner.stop(); return; } case 'approve': { runner.approve(command.payload); return; } } } }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFzdGVyL2FwaS50cyJdLCJuYW1lcyI6WyJicm9hZGNhc3QiLCJ3c3MiLCJtZXNzYWdlIiwiY2xpZW50cyIsImZvckVhY2giLCJ3cyIsInJlYWR5U3RhdGUiLCJXZWJTb2NrZXQiLCJPUEVOIiwic2VuZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjcmVldmV5QXBpIiwicnVubmVyIiwic3Vic2NyaWJlIiwib24iLCJwYXlsb2FkIiwidHlwZSIsImhhbmRsZU1lc3NhZ2UiLCJjb25zb2xlIiwibG9nIiwiY29tbWFuZCIsInBhcnNlIiwic3RhdHVzIiwic3RhcnQiLCJzdG9wIiwiYXBwcm92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBU0EsU0FBU0EsU0FBVCxDQUFtQkMsR0FBbkIsRUFBMENDLE9BQTFDLEVBQW1FO0FBQ2pFRCxFQUFBQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsT0FBWixDQUFxQkMsRUFBRCxJQUFRO0FBQzFCLFFBQUlBLEVBQUUsQ0FBQ0MsVUFBSCxLQUFrQkMsWUFBVUMsSUFBaEMsRUFBc0M7QUFDcENILE1BQUFBLEVBQUUsQ0FBQ0ksSUFBSCxDQUFRQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsT0FBZixDQUFSO0FBQ0Q7QUFDRixHQUpEO0FBS0Q7O0FBRWMsU0FBU1UsVUFBVCxDQUFvQkMsTUFBcEIsRUFBZ0Q7QUFDN0QsU0FBTztBQUNMQyxJQUFBQSxTQUFTLENBQUNiLEdBQUQsRUFBd0I7QUFDL0JZLE1BQUFBLE1BQU0sQ0FBQ0UsRUFBUCxDQUFVLFFBQVYsRUFBcUJDLE9BQUQsSUFBNEJoQixTQUFTLENBQUNDLEdBQUQsRUFBTTtBQUFFZ0IsUUFBQUEsSUFBSSxFQUFFLFFBQVI7QUFBa0JELFFBQUFBO0FBQWxCLE9BQU4sQ0FBekQ7QUFDRCxLQUhJOztBQUtMRSxJQUFBQSxhQUFhLENBQUNiLEVBQUQsRUFBZ0JILE9BQWhCLEVBQXlDO0FBQ3BELFVBQUksT0FBT0EsT0FBUCxJQUFrQixRQUF0QixFQUFnQztBQUM5QmlCLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLGNBQVosRUFBNEIsbUJBQTVCLEVBQWlEbEIsT0FBakQ7QUFDQTtBQUNEOztBQUVELFlBQU1tQixPQUFnQixHQUFHWCxJQUFJLENBQUNZLEtBQUwsQ0FBV3BCLE9BQVgsQ0FBekIsQ0FOb0QsQ0FPcEQ7O0FBRUEsY0FBUW1CLE9BQU8sQ0FBQ0osSUFBaEI7QUFDRSxhQUFLLFFBQUw7QUFBZTtBQUNiWixZQUFBQSxFQUFFLENBQUNJLElBQUgsQ0FBUUMsSUFBSSxDQUFDQyxTQUFMLENBQWU7QUFBRU0sY0FBQUEsSUFBSSxFQUFFLFFBQVI7QUFBa0JELGNBQUFBLE9BQU8sRUFBRUgsTUFBTSxDQUFDVTtBQUFsQyxhQUFmLENBQVI7QUFDQTtBQUNEOztBQUNELGFBQUssT0FBTDtBQUFjO0FBQ1pWLFlBQUFBLE1BQU0sQ0FBQ1csS0FBUCxDQUFhSCxPQUFPLENBQUNMLE9BQXJCO0FBQ0E7QUFDRDs7QUFDRCxhQUFLLE1BQUw7QUFBYTtBQUNYSCxZQUFBQSxNQUFNLENBQUNZLElBQVA7QUFDQTtBQUNEOztBQUNELGFBQUssU0FBTDtBQUFnQjtBQUNkWixZQUFBQSxNQUFNLENBQUNhLE9BQVAsQ0FBZUwsT0FBTyxDQUFDTCxPQUF2QjtBQUNBO0FBQ0Q7QUFoQkg7QUFrQkQ7O0FBaENJLEdBQVA7QUFrQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV2ViU29ja2V0IGZyb20gJ3dzJztcbmltcG9ydCBSdW5uZXIgZnJvbSAnLi9ydW5uZXInO1xuaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UsIENyZWV2ZXlVcGRhdGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZXZleUFwaSB7XG4gIHN1YnNjcmliZTogKHdzczogV2ViU29ja2V0LlNlcnZlcikgPT4gdm9pZDtcbiAgaGFuZGxlTWVzc2FnZTogKHdzOiBXZWJTb2NrZXQsIG1lc3NhZ2U6IFdlYlNvY2tldC5EYXRhKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBicm9hZGNhc3Qod3NzOiBXZWJTb2NrZXQuU2VydmVyLCBtZXNzYWdlOiBSZXNwb25zZSk6IHZvaWQge1xuICB3c3MuY2xpZW50cy5mb3JFYWNoKCh3cykgPT4ge1xuICAgIGlmICh3cy5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgd3Muc2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlZXZleUFwaShydW5uZXI6IFJ1bm5lcik6IENyZWV2ZXlBcGkge1xuICByZXR1cm4ge1xuICAgIHN1YnNjcmliZSh3c3M6IFdlYlNvY2tldC5TZXJ2ZXIpIHtcbiAgICAgIHJ1bm5lci5vbigndXBkYXRlJywgKHBheWxvYWQ6IENyZWV2ZXlVcGRhdGUpID0+IGJyb2FkY2FzdCh3c3MsIHsgdHlwZTogJ3VwZGF0ZScsIHBheWxvYWQgfSkpO1xuICAgIH0sXG5cbiAgICBoYW5kbGVNZXNzYWdlKHdzOiBXZWJTb2NrZXQsIG1lc3NhZ2U6IFdlYlNvY2tldC5EYXRhKSB7XG4gICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgIT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tXZWJTb2NrZXRdOicsICd1bmhhbmRsZWQgbWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1hbmQ6IFJlcXVlc3QgPSBKU09OLnBhcnNlKG1lc3NhZ2UpO1xuICAgICAgLy8gY29uc29sZS5sb2coXCJbV2ViU29ja2V0XTpcIiwgXCJtZXNzYWdlXCIsIG1lc3NhZ2UpO1xuXG4gICAgICBzd2l0Y2ggKGNvbW1hbmQudHlwZSkge1xuICAgICAgICBjYXNlICdzdGF0dXMnOiB7XG4gICAgICAgICAgd3Muc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdzdGF0dXMnLCBwYXlsb2FkOiBydW5uZXIuc3RhdHVzIH0pKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc3RhcnQnOiB7XG4gICAgICAgICAgcnVubmVyLnN0YXJ0KGNvbW1hbmQucGF5bG9hZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3N0b3AnOiB7XG4gICAgICAgICAgcnVubmVyLnN0b3AoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnYXBwcm92ZSc6IHtcbiAgICAgICAgICBydW5uZXIuYXBwcm92ZShjb21tYW5kLnBheWxvYWQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=