diffusion
Version:
Diffusion JavaScript client
53 lines (52 loc) • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RemoteServerBuilderBaseImpl = void 0;
var errors_1 = require("./../../../errors/errors");
var remote_servers_1 = require("./../../../features/remote-servers");
var require_non_null_1 = require("./../../util/require-non-null");
/**
* Implementation of {@link RemoteServerBuilderBase}.
*
* @since 6.9
*
* @param <B> builder type
*/
var RemoteServerBuilderBaseImpl = /** @class */ (function () {
/**
* Constructor.
*/
function RemoteServerBuilderBaseImpl(type) {
this.type = type;
}
RemoteServerBuilderBaseImpl.validateName = function (name) {
require_non_null_1.requireNonNull(name, 'name');
var trimmedName = name.trim();
if (trimmedName.length === 0) {
throw new errors_1.IllegalArgumentError('Non whitespace name must be supplied');
}
return trimmedName;
};
RemoteServerBuilderBaseImpl.prototype.validateUrl = function (url) {
require_non_null_1.requireNonNull(url, 'url');
var trimmedUrl = url.trim();
var uri;
try {
uri = new URL(trimmedUrl);
}
catch (e) {
throw new errors_1.IllegalArgumentError('Invalid URL');
}
if (uri.protocol !== 'ws:' && uri.protocol !== 'wss:') {
throw new errors_1.IllegalArgumentError("Transport for url " + url + " must be ws");
}
if (this.type === remote_servers_1.RemoteServerType.PRIMARY_INITIATOR && uri.protocol === 'wss:') {
throw new errors_1.IllegalArgumentError("Invalid url " + url + " - secure connection not supported for primary initiator connections");
}
else if (this.type === remote_servers_1.RemoteServerType.SECONDARY_ACCEPTOR && uri.protocol !== 'wss:') {
throw new errors_1.IllegalArgumentError("Invalid url " + url + " - connection must be secure for secondary acceptor connections");
}
return trimmedUrl;
};
return RemoteServerBuilderBaseImpl;
}());
exports.RemoteServerBuilderBaseImpl = RemoteServerBuilderBaseImpl;