in src/internal/ClientSocket.ts [439:479]
_parseEndpoint(endpoint) {
endpoint = endpoint.trim();
this._host = endpoint;
this._port = null;
const colonCnt = endpoint.split(':').length - 1;
if (colonCnt > 1) {
// IPv6 address
this._version = 6;
const index = endpoint.lastIndexOf(']:');
if (index >= 0) {
this._host = endpoint.substring(0, index + 1);
this._port = endpoint.substring(index + 2);
}
if (this._host.startsWith('[') || this._host.endsWith(']')) {
if (this._host.startsWith('[') && this._host.endsWith(']')) {
this._host = this._host.substring(1, this._host.length - 1);
}
else {
throw IgniteClientError.illegalArgumentError('Incorrect endpoint format: ' + endpoint);
}
}
}
else {
// IPv4 address
this._version = 4;
const index = endpoint.lastIndexOf(':');
if (index >= 0) {
this._host = endpoint.substring(0, index);
this._port = endpoint.substring(index + 1);
}
}
if (!this._port) {
this._port = PORT_DEFAULT;
}
else {
this._port = parseInt(<string>this._port);
if (isNaN(this._port)) {
throw IgniteClientError.illegalArgumentError('Incorrect endpoint format: ' + endpoint);
}
}
}