@iotize/cli
Version:
IoTize command line interface
50 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const impl_1 = require("@iotize/device-client.js/relay/impl");
const device_com_socket_node_1 = require("@iotize/device-com-socket.node");
const relay_1 = require("@iotize/device-com-socket.node/relay");
const device_com_websocket_js_1 = require("@iotize/device-com-websocket.js");
const relay_2 = require("@iotize/device-com-websocket.js/relay");
const url_1 = require("url");
class RelayServerFactory {
static fromProtocol(comProtocol, options) {
let serverType = '';
if (comProtocol instanceof device_com_websocket_js_1.WebSocketProtocol) {
serverType = 'websocket';
if (!options) {
options = {
port: parseInt(url_1.parse(comProtocol.params.url).port)
};
}
}
else if (comProtocol instanceof device_com_socket_node_1.SocketProtocol) {
serverType = 'socket';
if (!options) {
options = {
port: comProtocol.socketOptions.port
};
}
}
else {
throw new Error(`Not relay server factory from this protocol`);
}
return RelayServerFactory.fromType(serverType, options);
}
static fromType(type, options) {
let serverAdapter;
switch (type) {
case 'websocket':
serverAdapter = new relay_2.WebSocketAdapter.Server(); //TODO
break;
case 'socket':
serverAdapter = new relay_1.SocketAdapter.Server(); //TODO
break;
default:
throw new Error(`Server type ${type} not implemented yet`);
}
let relayServer = new impl_1.RelayServer(serverAdapter, options);
return relayServer;
}
}
exports.RelayServerFactory = RelayServerFactory;
//# sourceMappingURL=relay-server-factory.js.map