| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- "use strict";
- // Copyright (c) .NET Foundation. All rights reserved.
- // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
- Object.defineProperty(exports, "__esModule", { value: true });
- var HttpConnection_1 = require("./HttpConnection");
- var HubConnection_1 = require("./HubConnection");
- var JsonHubProtocol_1 = require("./JsonHubProtocol");
- var Loggers_1 = require("./Loggers");
- var Utils_1 = require("./Utils");
- /** A builder for configuring {@link @aspnet/signalr.HubConnection} instances. */
- var HubConnectionBuilder = /** @class */ (function () {
- function HubConnectionBuilder() {
- }
- HubConnectionBuilder.prototype.configureLogging = function (logging) {
- Utils_1.Arg.isRequired(logging, "logging");
- if (isLogger(logging)) {
- this.logger = logging;
- }
- else {
- this.logger = new Utils_1.ConsoleLogger(logging);
- }
- return this;
- };
- HubConnectionBuilder.prototype.withUrl = function (url, transportTypeOrOptions) {
- Utils_1.Arg.isRequired(url, "url");
- this.url = url;
- // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed
- // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.
- if (typeof transportTypeOrOptions === "object") {
- this.httpConnectionOptions = transportTypeOrOptions;
- }
- else {
- this.httpConnectionOptions = {
- transport: transportTypeOrOptions,
- };
- }
- return this;
- };
- /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified Hub Protocol.
- *
- * @param {IHubProtocol} protocol The {@link @aspnet/signalr.IHubProtocol} implementation to use.
- */
- HubConnectionBuilder.prototype.withHubProtocol = function (protocol) {
- Utils_1.Arg.isRequired(protocol, "protocol");
- this.protocol = protocol;
- return this;
- };
- /** Creates a {@link @aspnet/signalr.HubConnection} from the configuration options specified in this builder.
- *
- * @returns {HubConnection} The configured {@link @aspnet/signalr.HubConnection}.
- */
- HubConnectionBuilder.prototype.build = function () {
- // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one
- // provided to configureLogger
- var httpConnectionOptions = this.httpConnectionOptions || {};
- // If it's 'null', the user **explicitly** asked for null, don't mess with it.
- if (httpConnectionOptions.logger === undefined) {
- // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.
- httpConnectionOptions.logger = this.logger;
- }
- // Now create the connection
- if (!this.url) {
- throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");
- }
- var connection = new HttpConnection_1.HttpConnection(this.url, httpConnectionOptions);
- return HubConnection_1.HubConnection.create(connection, this.logger || Loggers_1.NullLogger.instance, this.protocol || new JsonHubProtocol_1.JsonHubProtocol());
- };
- return HubConnectionBuilder;
- }());
- exports.HubConnectionBuilder = HubConnectionBuilder;
- function isLogger(logger) {
- return logger.log !== undefined;
- }
- //# sourceMappingURL=HubConnectionBuilder.js.map
|