ethstats-cli
Version:
EthStats - CLI Client
73 lines (57 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _Http = _interopRequireDefault(require("./protocol/Http.js"));
var _WebSocket = _interopRequireDefault(require("./protocol/WebSocket.js"));
var _Error = _interopRequireDefault(require("./Error.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = function _default(diContainer) {
var client = null;
var getProtocol = function getProtocol(url) {
return url.split('://')[0];
};
var url = diContainer.config.client.url;
var protocol = getProtocol(url);
var configStoreClient = diContainer.config.configStore.get('client');
if (configStoreClient) {
if (configStoreClient.url) {
url = configStoreClient.url;
protocol = getProtocol(url);
}
if (configStoreClient.ipcPath) {
url = configStoreClient.ipcPath;
protocol = 'ipc';
}
}
if (diContainer.cli.flags.clientUrl) {
url = diContainer.cli.flags.clientUrl;
protocol = getProtocol(url);
diContainer.config.configStore.set('client', {
url: url
});
}
if (diContainer.cli.flags.clientIpcPath) {
url = diContainer.cli.flags.clientIpcPath;
protocol = 'ipc';
diContainer.config.configStore.set('client', {
ipcPath: url
});
}
protocol = protocol === 'https' ? 'http' : protocol;
protocol = protocol === 'wss' ? 'ws' : protocol;
diContainer.logger.debug("Init \"".concat(protocol, "\" client protocol"));
diContainer.clientErrorHandler = new _Error.default(protocol);
if (protocol === 'http') {
client = new _Http.default(diContainer);
} else if (protocol === 'ws' || protocol === 'ipc') {
client = new _WebSocket.default(diContainer);
} else {
diContainer.logger.error("Unknown protocol: \"".concat(protocol, "\""), false, true);
}
client.protocol = protocol;
client.url = url;
return client;
};
exports.default = _default;