UNPKG

@storybook/react-native-server

Version:

A better way to develop React Native Components for your app

46 lines (45 loc) 1.8 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var querystring_1 = __importDefault(require("querystring")); var ws_1 = __importDefault(require("ws")); var standalone_1 = __importDefault(require("@storybook/core/standalone")); var options_1 = __importDefault(require("./options")); var cli_1 = __importDefault(require("./cli")); var Server = /** @class */ (function () { function Server(options) { this.attachWS = this.attachWS.bind(this); this.options = (0, options_1.default)(options, this.attachWS); } Server.prototype.start = function () { return (0, standalone_1.default)(this.options); }; Server.prototype.attachWS = function (server) { var _this = this; this.wsServer = new ws_1.default.Server({ server: server }); this.wsServer.on('connection', function (s, req) { return _this.handleWS(s, req); }); }; Server.prototype.handleWS = function (socket, req) { var _this = this; if (this.options.manualId) { var params = req.url ? querystring_1.default.parse(req.url.substr(1)) : {}; if (params.pairedId) { socket.pairedId = params.pairedId; } } socket.on('message', function (data) { _this.wsServer.clients.forEach(function (c) { if (!_this.options.manualId || (socket.pairedId && socket.pairedId === c.pairedId)) { c.send(data); } }); }); }; return Server; }()); exports.default = Server; var server = new Server((0, cli_1.default)()); server.start();