UNPKG

diffusion

Version:

Diffusion JavaScript client

53 lines (52 loc) 2.13 kB
"use strict"; 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;