@addapptables/ng-web-socket
Version:
Web socket module for Angular
155 lines • 11 kB
JavaScript
/**
* @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=