UNPKG

@aspnet/signalr

Version:

ASP.NET Core SignalR Client

74 lines 3.62 kB
"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