@addapptables/ng-web-socket
Version:
Web socket module for Angular
68 lines • 5.43 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import 'reflect-metadata';
/** @type {?} */
var METADATA_KEY = '__@addapptables/websocket__';
/** @type {?} */
export var getMetadata = (/**
* @param {?} target
* @return {?}
*/
function (target) { return Reflect.getMetadata(METADATA_KEY, target); });
/**
* @template T
* @param {?=} webSocketOptions
* @return {?}
*/
export function WebSocketGateway(webSocketOptions) {
if (webSocketOptions === void 0) { webSocketOptions = {}; }
return (/**
* @param {?} target
* @return {?}
*/
function (target) {
/** @type {?} */
var metadata = getMetadata(target) || {};
Reflect.defineMetadata(METADATA_KEY, Object.assign(metadata, webSocketOptions), target);
});
}
/**
* @param {?} event
* @return {?}
*/
export function Subscribe(event) {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
/** @type {?} */
var metadata = getMetadata(target) || {};
/** @type {?} */
var events = [{ name: event, function: propertyKey }];
if (metadata.events) {
events.push.apply(events, tslib_1.__spread(metadata.events));
}
Reflect.defineMetadata(METADATA_KEY, Object.assign(metadata, { events: events }), target);
});
}
/**
* @return {?}
*/
export function WebSocketServer() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
/** @type {?} */
var metadata = getMetadata(target) || {};
Reflect.defineMetadata(METADATA_KEY, Object.assign(metadata, { connection: propertyKey }), target);
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhZGRhcHB0YWJsZXMvbmctd2ViLXNvY2tldC8iLCJzb3VyY2VzIjpbImxpYi9kZWNvcmF0b3JzL3NvY2tldC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLGtCQUFrQixDQUFDOztJQUdwQixZQUFZLEdBQUcsNkJBQTZCOztBQUVsRCxNQUFNLEtBQU8sV0FBVzs7OztBQUFHLFVBQUMsTUFBVyxJQUFVLE9BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQXpDLENBQXlDLENBQUE7Ozs7OztBQUUxRixNQUFNLFVBQVUsZ0JBQWdCLENBQVUsZ0JBQTBDO0lBQTFDLGlDQUFBLEVBQUEscUJBQTBDO0lBQ2hGOzs7O0lBQU8sVUFBQyxNQUFXOztZQUNULFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtRQUMxQyxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVGLENBQUMsRUFBQztBQUNOLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhO0lBQ25DOzs7OztJQUFPLFVBQUMsTUFBVyxFQUFFLFdBQW1COztZQUM5QixRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7O1lBQ3BDLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkQsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLE9BQVgsTUFBTSxtQkFBUyxRQUFRLENBQUMsTUFBTSxHQUFFO1NBQ25DO1FBQ0QsT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLFFBQUEsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEYsQ0FBQyxFQUFDO0FBQ04sQ0FBQzs7OztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzNCOzs7OztJQUFPLFVBQUMsTUFBVyxFQUFFLFdBQW1COztZQUM5QixRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDMUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RyxDQUFDLEVBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgV2ViU29ja2V0T3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy93ZWJzb2NrZXQtb3B0aW9ucy5tb2RlbCc7XHJcblxyXG5jb25zdCBNRVRBREFUQV9LRVkgPSAnX19AYWRkYXBwdGFibGVzL3dlYnNvY2tldF9fJztcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRNZXRhZGF0YSA9ICh0YXJnZXQ6IGFueSk6IGFueSA9PiBSZWZsZWN0LmdldE1ldGFkYXRhKE1FVEFEQVRBX0tFWSwgdGFyZ2V0KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBXZWJTb2NrZXRHYXRld2F5PFQgPSBhbnk+KHdlYlNvY2tldE9wdGlvbnM6IFdlYlNvY2tldE9wdGlvbnM8VD4gPSB7fSkge1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0gZ2V0TWV0YWRhdGEodGFyZ2V0KSB8fCB7fTtcclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKE1FVEFEQVRBX0tFWSwgT2JqZWN0LmFzc2lnbihtZXRhZGF0YSwgd2ViU29ja2V0T3B0aW9ucyksIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU3Vic2NyaWJlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGdldE1ldGFkYXRhKHRhcmdldCkgfHwge307XHJcbiAgICAgICAgY29uc3QgZXZlbnRzID0gW3sgbmFtZTogZXZlbnQsIGZ1bmN0aW9uOiBwcm9wZXJ0eUtleSB9XTtcclxuICAgICAgICBpZiAobWV0YWRhdGEuZXZlbnRzKSB7XHJcbiAgICAgICAgICAgIGV2ZW50cy5wdXNoKC4uLm1ldGFkYXRhLmV2ZW50cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoTUVUQURBVEFfS0VZLCBPYmplY3QuYXNzaWduKG1ldGFkYXRhLCB7IGV2ZW50cyB9KSwgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBXZWJTb2NrZXRTZXJ2ZXIoKSB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBnZXRNZXRhZGF0YSh0YXJnZXQpIHx8IHt9O1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoTUVUQURBVEFfS0VZLCBPYmplY3QuYXNzaWduKG1ldGFkYXRhLCB7IGNvbm5lY3Rpb246IHByb3BlcnR5S2V5IH0pLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuXHJcbiJdfQ==