UNPKG

creevey

Version:

Cross-browser screenshot testing tool for Storybook with fancy UI Runner

54 lines 1.75 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = creeveyApi; const ws_1 = __importDefault(require("ws")); const logger_js_1 = require("../logger.js"); function broadcast(wss, message) { wss.clients.forEach((ws) => { if (ws.readyState === ws_1.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') { (0, logger_js_1.logger)().info('unhandled message', message); return; } const command = JSON.parse(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': { void runner.approve(command.payload); return; } case 'approveAll': { void runner.approveAll(); return; } } }, }; } //# sourceMappingURL=api.js.map