@storybook/react-native-server
Version:
A better way to develop React Native Components for your app
46 lines (45 loc) • 1.8 kB
JavaScript
;
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();