UNPKG

@addapptables/ng-web-socket

Version:
155 lines 11 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable, Inject } from '@angular/core'; import { ROOT_ADAPTER } from '../tokens'; import { getMetadata } from '../decorators/socket.decorator'; import { withOptions } from '../life-cycle/socket-with-options'; var ManagerSocketAdapter = /** @class */ (function () { function ManagerSocketAdapter(adapter) { this.adapter = adapter; this.connections = []; } /** * @param {?} serviceSockets * @return {?} */ ManagerSocketAdapter.prototype.addSockects = /** * @param {?} serviceSockets * @return {?} */ function (serviceSockets) { var _this = this; this.sockets = serviceSockets; this.sockets.forEach((/** * @param {?} socket * @return {?} */ function (socket) { /** @type {?} */ var metadata = (/** @type {?} */ (getMetadata(socket.constructor))); if (metadata.autoConnect) { _this.connect(socket); } })); }; /** * @param {?} serviceSocket * @return {?} */ ManagerSocketAdapter.prototype.connect = /** * @param {?} serviceSocket * @return {?} */ function (serviceSocket) { return tslib_1.__awaiter(this, void 0, void 0, function () { var metadata, methods, connection, events; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: metadata = (/** @type {?} */ (getMetadata(serviceSocket.constructor))); methods = getMetadata(serviceSocket); if (typeof serviceSocket[withOptions] === 'function') { metadata = Object.assign(metadata, serviceSocket[withOptions]()); } return [4 /*yield*/, this.adapter.connect(metadata.url, metadata.options)]; case 1: connection = _a.sent(); this.bindConnection(methods, connection, serviceSocket); events = methods && methods.events; this.bindEvents(connection, events, serviceSocket); return [2 /*return*/]; } }); }); }; /** * @private * @param {?} methods * @param {?} connection * @param {?} serviceSocket * @return {?} */ ManagerSocketAdapter.prototype.bindConnection = /** * @private * @param {?} methods * @param {?} connection * @param {?} serviceSocket * @return {?} */ function (methods, connection, serviceSocket) { if (methods && methods.connection) { serviceSocket[methods.connection] = connection; } this.connections.push(connection); }; /** * @private * @param {?} connection * @param {?} events * @param {?} serviceSocket * @return {?} */ ManagerSocketAdapter.prototype.bindEvents = /** * @private * @param {?} connection * @param {?} events * @param {?} serviceSocket * @return {?} */ function (connection, events, serviceSocket) { var _this = this; if (events) { events.forEach((/** * @param {?} event * @return {?} */ function (event) { _this.adapter.bindEvent(connection, event.name, serviceSocket[event.function].bind(serviceSocket)); })); } }; /** * @return {?} */ ManagerSocketAdapter.prototype.ngOnDestroy = /** * @return {?} */ function () { var _this = this; this.connections.forEach((/** * @param {?} x * @return {?} */ function (x) { return _this.adapter.disconnect(x); })); }; ManagerSocketAdapter.decorators = [ { type: Injectable } ]; /** @nocollapse */ ManagerSocketAdapter.ctorParameters = function () { return [ { type: undefined, decorators: [{ type: Inject, args: [ROOT_ADAPTER,] }] } ]; }; return ManagerSocketAdapter; }()); export { ManagerSocketAdapter }; if (false) { /** * @type {?} * @private */ ManagerSocketAdapter.prototype.sockets; /** * @type {?} * @private */ ManagerSocketAdapter.prototype.connections; /** * @type {?} * @private */ ManagerSocketAdapter.prototype.adapter; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci1zb2NrZXQtYWRhcHRlcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRkYXBwdGFibGVzL25nLXdlYi1zb2NrZXQvIiwic291cmNlcyI6WyJsaWIvYWRhcHRlcnMvbWFuYWdlci1zb2NrZXQtYWRhcHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFaEU7SUFPSSw4QkFBMEMsT0FBcUI7UUFBckIsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUZ2RCxnQkFBVyxHQUFVLEVBQUUsQ0FBQztJQUVtQyxDQUFDOzs7OztJQUVwRSwwQ0FBVzs7OztJQUFYLFVBQVksY0FBbUI7UUFBL0IsaUJBUUM7UUFQRyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7UUFBQyxVQUFBLE1BQU07O2dCQUNqQixRQUFRLEdBQUcsbUJBQWtCLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUE7WUFDbEUsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUN0QixLQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7OztJQUVLLHNDQUFPOzs7O0lBQWIsVUFBYyxhQUFrQjs7Ozs7O3dCQUN4QixRQUFRLEdBQUcsbUJBQWtCLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUE7d0JBQ2pFLE9BQU8sR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO3dCQUMxQyxJQUFJLE9BQU8sYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLFVBQVUsRUFBRTs0QkFDbEQsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQ3BFO3dCQUNrQixxQkFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBQTs7d0JBQXZFLFVBQVUsR0FBRyxTQUEwRDt3QkFDN0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO3dCQUNsRCxNQUFNLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNO3dCQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7Ozs7O0tBQ3REOzs7Ozs7OztJQUVPLDZDQUFjOzs7Ozs7O0lBQXRCLFVBQXVCLE9BQVksRUFBRSxVQUFlLEVBQUUsYUFBa0I7UUFDcEUsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUMvQixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUNsRDtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7Ozs7O0lBRU8seUNBQVU7Ozs7Ozs7SUFBbEIsVUFBbUIsVUFBZSxFQUFFLE1BQTZCLEVBQUUsYUFBa0I7UUFBckYsaUJBTUM7UUFMRyxJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQSxLQUFLO2dCQUNoQixLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLENBQUMsRUFBQyxDQUFDO1NBQ047SUFDTCxDQUFDOzs7O0lBRUQsMENBQVc7OztJQUFYO1FBQUEsaUJBRUM7UUFERyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU87Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUExQixDQUEwQixFQUFDLENBQUM7SUFDOUQsQ0FBQzs7Z0JBaERKLFVBQVU7Ozs7Z0RBT00sTUFBTSxTQUFDLFlBQVk7O0lBMENwQywyQkFBQztDQUFBLEFBakRELElBaURDO1NBaERZLG9CQUFvQjs7Ozs7O0lBRTdCLHVDQUF1Qjs7Ozs7SUFFdkIsMkNBQWdDOzs7OztJQUVwQix1Q0FBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJU29ja2V0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zb2NrZXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUk9PVF9BREFQVEVSIH0gZnJvbSAnLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgZ2V0TWV0YWRhdGEgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3NvY2tldC5kZWNvcmF0b3InO1xyXG5pbXBvcnQgeyBXZWJTb2NrZXRPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzL3dlYnNvY2tldC1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgV2ViU29ja2V0RXZlbnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy93ZWJzb2NrZXQtZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyB3aXRoT3B0aW9ucyB9IGZyb20gJy4uL2xpZmUtY3ljbGUvc29ja2V0LXdpdGgtb3B0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNYW5hZ2VyU29ja2V0QWRhcHRlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJpdmF0ZSBzb2NrZXRzOiBhbnlbXTtcclxuXHJcbiAgICBwcml2YXRlIGNvbm5lY3Rpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoUk9PVF9BREFQVEVSKSBwcml2YXRlIGFkYXB0ZXI6IElTb2NrZXQ8YW55PikgeyB9XHJcblxyXG4gICAgYWRkU29ja2VjdHMoc2VydmljZVNvY2tldHM6IGFueSkge1xyXG4gICAgICAgIHRoaXMuc29ja2V0cyA9IHNlcnZpY2VTb2NrZXRzO1xyXG4gICAgICAgIHRoaXMuc29ja2V0cy5mb3JFYWNoKHNvY2tldCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gPFdlYlNvY2tldE9wdGlvbnM+Z2V0TWV0YWRhdGEoc29ja2V0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICAgICAgaWYgKG1ldGFkYXRhLmF1dG9Db25uZWN0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Qoc29ja2V0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNvbm5lY3Qoc2VydmljZVNvY2tldDogYW55KSB7XHJcbiAgICAgICAgbGV0IG1ldGFkYXRhID0gPFdlYlNvY2tldE9wdGlvbnM+Z2V0TWV0YWRhdGEoc2VydmljZVNvY2tldC5jb25zdHJ1Y3Rvcik7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kcyA9IGdldE1ldGFkYXRhKHNlcnZpY2VTb2NrZXQpO1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc2VydmljZVNvY2tldFt3aXRoT3B0aW9uc10gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgbWV0YWRhdGEgPSBPYmplY3QuYXNzaWduKG1ldGFkYXRhLCBzZXJ2aWNlU29ja2V0W3dpdGhPcHRpb25zXSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IGF3YWl0IHRoaXMuYWRhcHRlci5jb25uZWN0KG1ldGFkYXRhLnVybCwgbWV0YWRhdGEub3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5iaW5kQ29ubmVjdGlvbihtZXRob2RzLCBjb25uZWN0aW9uLCBzZXJ2aWNlU29ja2V0KTtcclxuICAgICAgICBjb25zdCBldmVudHMgPSBtZXRob2RzICYmIG1ldGhvZHMuZXZlbnRzO1xyXG4gICAgICAgIHRoaXMuYmluZEV2ZW50cyhjb25uZWN0aW9uLCBldmVudHMsIHNlcnZpY2VTb2NrZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYmluZENvbm5lY3Rpb24obWV0aG9kczogYW55LCBjb25uZWN0aW9uOiBhbnksIHNlcnZpY2VTb2NrZXQ6IGFueSkge1xyXG4gICAgICAgIGlmIChtZXRob2RzICYmIG1ldGhvZHMuY29ubmVjdGlvbikge1xyXG4gICAgICAgICAgICBzZXJ2aWNlU29ja2V0W21ldGhvZHMuY29ubmVjdGlvbl0gPSBjb25uZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25zLnB1c2goY29ubmVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBiaW5kRXZlbnRzKGNvbm5lY3Rpb246IGFueSwgZXZlbnRzOiBXZWJTb2NrZXRFdmVudE1vZGVsW10sIHNlcnZpY2VTb2NrZXQ6IGFueSkge1xyXG4gICAgICAgIGlmIChldmVudHMpIHtcclxuICAgICAgICAgICAgZXZlbnRzLmZvckVhY2goZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGFwdGVyLmJpbmRFdmVudChjb25uZWN0aW9uLCBldmVudC5uYW1lLCBzZXJ2aWNlU29ja2V0W2V2ZW50LmZ1bmN0aW9uXS5iaW5kKHNlcnZpY2VTb2NrZXQpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCh4ID0+IHRoaXMuYWRhcHRlci5kaXNjb25uZWN0KHgpKTtcclxuICAgIH1cclxufVxyXG4iXX0=