diffusion
Version:
Diffusion JavaScript client
120 lines (119 loc) • 5.18 kB
JavaScript
;
/**
* @module Diffusion
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.newSessionEventParametersBuilder = exports.newRemoteServerBuilder = exports.newTopicMetricCollectorBuilder = exports.newSessionMetricCollectorBuilder = exports.newBranchMappingTableBuilder = exports.rolesToString = exports.stringToRoles = exports.escape = void 0;
var errors_1 = require("./../../errors/errors");
var remote_servers_1 = require("./../../features/remote-servers");
var session_event_parameters_builder_1 = require("./../features/client-control/session-event-parameters-builder");
var session_metric_collector_builder_1 = require("./../features/metrics/session-metric-collector-builder");
var topic_metric_collector_builder_1 = require("./../features/metrics/topic-metric-collector-builder");
var primary_initiator_builder_1 = require("./../features/remote-servers/primary-initiator-builder");
var remote_server_builder_1 = require("./../features/remote-servers/remote-server-builder");
var secondary_acceptor_builder_1 = require("./../features/remote-servers/secondary-acceptor-builder");
var secondary_initiator_builder_1 = require("./../features/remote-servers/secondary-initiator-builder");
var branch_mapping_table_builder_1 = require("./../features/session-trees/branch-mapping-table-builder");
var require_non_null_1 = require("./../util/require-non-null");
var util = require("./../util/string");
/**
* Inserts an escape character '\' before any of the special characters ' "
* or \. Additionally checks that the string is defined.
*
* @param s the string to be escaped
* @returns the string value with escape characters inserted as appropriate
* @throws a {@link NullValueError} if the argument is `null` or `undefined`
*/
function escape(s) {
return util.escape(require_non_null_1.requireNonNull(s, 'string'));
}
exports.escape = escape;
/**
* Converts a formatted multi value property to a set of roles.
* Additionally checks that the string is defined.
*
* Unescapes any escaped characters in the string.
* @param s the string with quoted substrings separated by whitespace or
* commas
* @return set of strings
* @throws an error if the argument is `null` or `undefined`
* @throws an {@link IllegalArgumentError} if the input is not correctly quoted
* @throws a {@link NullValueError} if the argument is `null` or `undefined`
*/
function stringToRoles(s) {
return util.stringToSet(require_non_null_1.requireNonNull(s, 'string'));
}
exports.stringToRoles = stringToRoles;
/**
* Converts a set of roles to a canonicalised property string
* representation, escaping as required.
*
* Uses comma separators and single quotes.
*
* @param roles a set of strings
* @return a string with each of the members escaped, quoted and concatenated
* @throws a {@link NullValueError} if the argument is `null` or `undefined`
*/
function rolesToString(roles) {
return util.collectionToString(require_non_null_1.requireNonNull(roles, 'roles'));
}
exports.rolesToString = rolesToString;
/**
* Create a new {@link BranchMappingTableBuilder}.
*
* @since 6.7
*/
function newBranchMappingTableBuilder() {
return new branch_mapping_table_builder_1.BranchMappingTableBuilderImpl();
}
exports.newBranchMappingTableBuilder = newBranchMappingTableBuilder;
/**
* Create a new {@link SessionMetricCollectorBuilder}.
*
* @since 6.7
*/
function newSessionMetricCollectorBuilder() {
return new session_metric_collector_builder_1.SessionMetricCollectorBuilderImpl();
}
exports.newSessionMetricCollectorBuilder = newSessionMetricCollectorBuilder;
/**
* Create a new {@link TopicMetricCollectorBuilder}.
*
* @since 6.7
*/
function newTopicMetricCollectorBuilder() {
return new topic_metric_collector_builder_1.TopicMetricCollectorBuilderImpl();
}
exports.newTopicMetricCollectorBuilder = newTopicMetricCollectorBuilder;
/**
* Create a new {@link RemoteServerBuilder}.
*
* @since 6.7
*/
function newRemoteServerBuilder(selectors, type // eslint-disable-next-line deprecation/deprecation
) {
switch (type) {
case undefined:
return new remote_server_builder_1.RemoteServerBuilderImpl(selectors);
case remote_servers_1.RemoteServerType.PRIMARY_INITIATOR:
return new primary_initiator_builder_1.PrimaryInitiatorBuilderImpl();
case remote_servers_1.RemoteServerType.SECONDARY_ACCEPTOR:
return new secondary_acceptor_builder_1.SecondaryAcceptorBuilderImpl(selectors);
case remote_servers_1.RemoteServerType.SECONDARY_INITIATOR:
return new secondary_initiator_builder_1.SecondaryInitiatorBuilderImpl(selectors);
default:
throw new errors_1.IllegalArgumentError('Unknown remote server type');
}
}
exports.newRemoteServerBuilder = newRemoteServerBuilder;
/**
* Create a new {@link SessionEventParametersBuilder}.
*
* @return the builder
*
* @since 6.11
*/
function newSessionEventParametersBuilder() {
return new session_event_parameters_builder_1.SessionEventParametersBuilderImpl();
}
exports.newSessionEventParametersBuilder = newSessionEventParametersBuilder;