UNPKG

diffusion

Version:

Diffusion JavaScript client

120 lines (119 loc) 5.18 kB
"use strict"; /** * @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;