ng4-signalr
Version:
angular4 signalr library
67 lines • 12.1 kB
JavaScript
import { SignalRConfiguration } from './signalr.configuration';
import { SignalRConnection } from './connection/signalr.connection';
import { Inject, Injectable, InjectionToken } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "./signalr.configuration";
export const SIGNALR_JCONNECTION_TOKEN = new InjectionToken('SIGNALR_JCONNECTION_TOKEN');
export class SignalR {
constructor(configuration, zone, jHubConnectionFn) {
this._configuration = configuration;
this._zone = zone;
this._jHubConnectionFn = jHubConnectionFn;
}
createConnection(options) {
const configuration = this.merge(options ? options : {});
try {
const serializedQs = JSON.stringify(configuration.qs);
const serializedTransport = JSON.stringify(configuration.transport);
if (configuration.logging) {
console.log(`Creating connecting with multiple HUBS support!...`);
console.log(`configuration:[url: '${configuration.url}'] ...`);
configuration.hubNames.forEach((element) => {
console.log(`configuration:[hubName: '${element}'] ...`);
});
console.log(`configuration:[qs: '${serializedQs}'] ...`);
console.log(`configuration:[transport: '${serializedTransport}'] ...`);
}
}
catch (err) { /* empty */ }
// create connection object
const jConnection = this._jHubConnectionFn(configuration.url);
jConnection.logging = configuration.logging;
jConnection.qs = configuration.qs;
const jProxies = new Map();
configuration.hubNames.forEach((element) => {
// create a proxy
const jp = jConnection.createHubProxy(element);
jp.on('noOp', () => { });
jProxies.set(element, jp);
// !!! important. We need to register at least one function otherwise server callbacks will not work.
});
const hubConnection = new SignalRConnection(jConnection, jProxies, this._zone, configuration);
return hubConnection;
}
connect(options) {
return this.createConnection(options).start();
}
merge(overrides) {
const merged = new SignalRConfiguration();
merged.hubNames = overrides.hubNames || this._configuration.hubNames;
merged.url = overrides.url || this._configuration.url;
merged.qs = overrides.qs || this._configuration.qs;
merged.logging = this._configuration.logging;
merged.jsonp = overrides.jsonp || this._configuration.jsonp;
merged.withCredentials = overrides.withCredentials || this._configuration.withCredentials;
merged.transport = overrides.transport || this._configuration.transport;
return merged;
}
}
SignalR.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SignalR, deps: [{ token: i1.SignalRConfiguration }, { token: i0.NgZone }, { token: SIGNALR_JCONNECTION_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
SignalR.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SignalR });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SignalR, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.SignalRConfiguration }, { type: i0.NgZone }, { type: undefined, decorators: [{
type: Inject,
args: [SIGNALR_JCONNECTION_TOKEN]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9zaWduYWxyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXBFLE9BQU8sRUFBVSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRTNFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFNLDJCQUEyQixDQUFDLENBQUM7QUFFOUYsTUFBTSxPQUFPLE9BQU87SUFLaEIsWUFDSSxhQUFtQyxFQUNuQyxJQUFZLEVBQ3VCLGdCQUFxQjtRQUV4RCxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQTRCO1FBRWhELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpELElBQUk7WUFFQSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXBFLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRTtnQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixhQUFhLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztnQkFDL0QsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsT0FBTyxRQUFRLENBQUMsQ0FBQztnQkFDN0QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsWUFBWSxRQUFRLENBQUMsQ0FBQztnQkFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsbUJBQW1CLFFBQVEsQ0FBQyxDQUFDO2FBQzFFO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRSxFQUFDLFdBQVcsRUFBRTtRQUU1QiwyQkFBMkI7UUFDM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxXQUFXLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDNUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBRWxDLE1BQU0sUUFBUSxHQUFxQixJQUFJLEdBQUcsRUFBZSxDQUFDO1FBQzFELGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkMsaUJBQWlCO1lBQ2pCLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQWUsQ0FBQyxDQUFDLENBQUM7WUFDckMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUIscUdBQXFHO1FBQ3pHLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUYsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxPQUE0QjtRQUV2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQTZCO1FBQ3ZDLE1BQU0sTUFBTSxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDaEUsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxNQUFNLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUM3QyxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUQsTUFBTSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1FBQzFGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUN4RSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOztxR0FyRVEsT0FBTyw0RUFRSix5QkFBeUI7eUdBUjVCLE9BQU87NEZBQVAsT0FBTztrQkFEbkIsVUFBVTs7MEJBU0YsTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2lnbmFsUkNvbm5lY3Rpb24gfSBmcm9tICcuL2Nvbm5lY3Rpb24vaS5zaWduYWxyLmNvbm5lY3Rpb24nO1xyXG5pbXBvcnQgeyBTaWduYWxSQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vc2lnbmFsci5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgU2lnbmFsUkNvbm5lY3Rpb24gfSBmcm9tICcuL2Nvbm5lY3Rpb24vc2lnbmFsci5jb25uZWN0aW9uJztcclxuaW1wb3J0IHsgSUNvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9jb25uZWN0aW9uL2Nvbm5lY3Rpb24ub3B0aW9ucyc7XHJcbmltcG9ydCB7IE5nWm9uZSwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJR05BTFJfSkNPTk5FQ1RJT05fVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignU0lHTkFMUl9KQ09OTkVDVElPTl9UT0tFTicpO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTaWduYWxSIHtcclxuICAgIHByaXZhdGUgX2NvbmZpZ3VyYXRpb246IFNpZ25hbFJDb25maWd1cmF0aW9uO1xyXG4gICAgcHJpdmF0ZSBfem9uZTogTmdab25lO1xyXG4gICAgcHJpdmF0ZSBfakh1YkNvbm5lY3Rpb25GbjogYW55O1xyXG5cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBjb25maWd1cmF0aW9uOiBTaWduYWxSQ29uZmlndXJhdGlvbixcclxuICAgICAgICB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgQEluamVjdChTSUdOQUxSX0pDT05ORUNUSU9OX1RPS0VOKSBqSHViQ29ubmVjdGlvbkZuOiBhbnlcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xyXG4gICAgICAgIHRoaXMuX3pvbmUgPSB6b25lO1xyXG4gICAgICAgIHRoaXMuX2pIdWJDb25uZWN0aW9uRm4gPSBqSHViQ29ubmVjdGlvbkZuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjcmVhdGVDb25uZWN0aW9uKG9wdGlvbnM/OiBJQ29ubmVjdGlvbk9wdGlvbnMpOiBTaWduYWxSQ29ubmVjdGlvbiB7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLm1lcmdlKG9wdGlvbnMgPyBvcHRpb25zIDoge30pO1xyXG5cclxuICAgICAgICB0cnkge1xyXG5cclxuICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZFFzID0gSlNPTi5zdHJpbmdpZnkoY29uZmlndXJhdGlvbi5xcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRUcmFuc3BvcnQgPSBKU09OLnN0cmluZ2lmeShjb25maWd1cmF0aW9uLnRyYW5zcG9ydCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5sb2dnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgQ3JlYXRpbmcgY29ubmVjdGluZyB3aXRoIG11bHRpcGxlIEhVQlMgc3VwcG9ydCEuLi5gKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBjb25maWd1cmF0aW9uOlt1cmw6ICcke2NvbmZpZ3VyYXRpb24udXJsfSddIC4uLmApO1xyXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi5odWJOYW1lcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYGNvbmZpZ3VyYXRpb246W2h1Yk5hbWU6ICcke2VsZW1lbnR9J10gLi4uYCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBjb25maWd1cmF0aW9uOltxczogJyR7c2VyaWFsaXplZFFzfSddIC4uLmApO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYGNvbmZpZ3VyYXRpb246W3RyYW5zcG9ydDogJyR7c2VyaWFsaXplZFRyYW5zcG9ydH0nXSAuLi5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycikgey8qIGVtcHR5ICovIH1cclxuXHJcbiAgICAgICAgLy8gY3JlYXRlIGNvbm5lY3Rpb24gb2JqZWN0XHJcbiAgICAgICAgY29uc3QgakNvbm5lY3Rpb24gPSB0aGlzLl9qSHViQ29ubmVjdGlvbkZuKGNvbmZpZ3VyYXRpb24udXJsKTtcclxuICAgICAgICBqQ29ubmVjdGlvbi5sb2dnaW5nID0gY29uZmlndXJhdGlvbi5sb2dnaW5nO1xyXG4gICAgICAgIGpDb25uZWN0aW9uLnFzID0gY29uZmlndXJhdGlvbi5xcztcclxuXHJcbiAgICAgICAgY29uc3QgalByb3hpZXM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24uaHViTmFtZXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBjcmVhdGUgYSBwcm94eVxyXG4gICAgICAgICAgICBjb25zdCBqcCA9IGpDb25uZWN0aW9uLmNyZWF0ZUh1YlByb3h5KGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBqcC5vbignbm9PcCcsICgpID0+IHsgLyogRW1wdHkgKi8gfSk7XHJcbiAgICAgICAgICAgIGpQcm94aWVzLnNldChlbGVtZW50LCBqcCk7XHJcbiAgICAgICAgICAgIC8vICEhISBpbXBvcnRhbnQuIFdlIG5lZWQgdG8gcmVnaXN0ZXIgYXQgbGVhc3Qgb25lIGZ1bmN0aW9uIG90aGVyd2lzZSBzZXJ2ZXIgY2FsbGJhY2tzIHdpbGwgbm90IHdvcmsuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGh1YkNvbm5lY3Rpb24gPSBuZXcgU2lnbmFsUkNvbm5lY3Rpb24oakNvbm5lY3Rpb24sIGpQcm94aWVzLCB0aGlzLl96b25lLCBjb25maWd1cmF0aW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGh1YkNvbm5lY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbm5lY3Qob3B0aW9ucz86IElDb25uZWN0aW9uT3B0aW9ucyk6IFByb21pc2U8SVNpZ25hbFJDb25uZWN0aW9uPiB7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24ob3B0aW9ucykuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1lcmdlKG92ZXJyaWRlczogSUNvbm5lY3Rpb25PcHRpb25zKTogU2lnbmFsUkNvbmZpZ3VyYXRpb24ge1xyXG4gICAgICAgIGNvbnN0IG1lcmdlZDogU2lnbmFsUkNvbmZpZ3VyYXRpb24gPSBuZXcgU2lnbmFsUkNvbmZpZ3VyYXRpb24oKTtcclxuICAgICAgICBtZXJnZWQuaHViTmFtZXMgPSBvdmVycmlkZXMuaHViTmFtZXMgfHwgdGhpcy5fY29uZmlndXJhdGlvbi5odWJOYW1lcztcclxuICAgICAgICBtZXJnZWQudXJsID0gb3ZlcnJpZGVzLnVybCB8fCB0aGlzLl9jb25maWd1cmF0aW9uLnVybDtcclxuICAgICAgICBtZXJnZWQucXMgPSBvdmVycmlkZXMucXMgfHwgdGhpcy5fY29uZmlndXJhdGlvbi5xcztcclxuICAgICAgICBtZXJnZWQubG9nZ2luZyA9IHRoaXMuX2NvbmZpZ3VyYXRpb24ubG9nZ2luZztcclxuICAgICAgICBtZXJnZWQuanNvbnAgPSBvdmVycmlkZXMuanNvbnAgfHwgdGhpcy5fY29uZmlndXJhdGlvbi5qc29ucDtcclxuICAgICAgICBtZXJnZWQud2l0aENyZWRlbnRpYWxzID0gb3ZlcnJpZGVzLndpdGhDcmVkZW50aWFscyB8fCB0aGlzLl9jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscztcclxuICAgICAgICBtZXJnZWQudHJhbnNwb3J0ID0gb3ZlcnJpZGVzLnRyYW5zcG9ydCB8fCB0aGlzLl9jb25maWd1cmF0aW9uLnRyYW5zcG9ydDtcclxuICAgICAgICByZXR1cm4gbWVyZ2VkO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=