@addapptables/ng-web-socket
Version:
Web socket module for Angular
66 lines • 5.27 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import 'reflect-metadata';
/** @type {?} */
const METADATA_KEY = '__@addapptables/websocket__';
/** @type {?} */
export const getMetadata = (/**
* @param {?} target
* @return {?}
*/
(target) => Reflect.getMetadata(METADATA_KEY, target));
/**
* @template T
* @param {?=} webSocketOptions
* @return {?}
*/
export function WebSocketGateway(webSocketOptions = {}) {
return (/**
* @param {?} target
* @return {?}
*/
(target) => {
/** @type {?} */
const 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 {?}
*/
(target, propertyKey) => {
/** @type {?} */
const metadata = getMetadata(target) || {};
/** @type {?} */
const events = [{ name: event, function: propertyKey }];
if (metadata.events) {
events.push(...metadata.events);
}
Reflect.defineMetadata(METADATA_KEY, Object.assign(metadata, { events }), target);
});
}
/**
* @return {?}
*/
export function WebSocketServer() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
(target, propertyKey) => {
/** @type {?} */
const metadata = getMetadata(target) || {};
Reflect.defineMetadata(METADATA_KEY, Object.assign(metadata, { connection: propertyKey }), target);
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhZGRhcHB0YWJsZXMvbmctd2ViLXNvY2tldC8iLCJzb3VyY2VzIjpbImxpYi9kZWNvcmF0b3JzL3NvY2tldC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sa0JBQWtCLENBQUM7O01BR3BCLFlBQVksR0FBRyw2QkFBNkI7O0FBRWxELE1BQU0sT0FBTyxXQUFXOzs7O0FBQUcsQ0FBQyxNQUFXLEVBQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBOzs7Ozs7QUFFMUYsTUFBTSxVQUFVLGdCQUFnQixDQUFVLG1CQUF3QyxFQUFFO0lBQ2hGOzs7O0lBQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTs7Y0FDYixRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDMUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RixDQUFDLEVBQUM7QUFDTixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBYTtJQUNuQzs7Ozs7SUFBTyxDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFFLEVBQUU7O2NBQ2xDLFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTs7Y0FDcEMsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RixDQUFDLEVBQUM7QUFDTixDQUFDOzs7O0FBRUQsTUFBTSxVQUFVLGVBQWU7SUFDM0I7Ozs7O0lBQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFOztjQUNsQyxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDMUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RyxDQUFDLEVBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgV2ViU29ja2V0T3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy93ZWJzb2NrZXQtb3B0aW9ucy5tb2RlbCc7XHJcblxyXG5jb25zdCBNRVRBREFUQV9LRVkgPSAnX19AYWRkYXBwdGFibGVzL3dlYnNvY2tldF9fJztcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRNZXRhZGF0YSA9ICh0YXJnZXQ6IGFueSk6IGFueSA9PiBSZWZsZWN0LmdldE1ldGFkYXRhKE1FVEFEQVRBX0tFWSwgdGFyZ2V0KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBXZWJTb2NrZXRHYXRld2F5PFQgPSBhbnk+KHdlYlNvY2tldE9wdGlvbnM6IFdlYlNvY2tldE9wdGlvbnM8VD4gPSB7fSkge1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0gZ2V0TWV0YWRhdGEodGFyZ2V0KSB8fCB7fTtcclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKE1FVEFEQVRBX0tFWSwgT2JqZWN0LmFzc2lnbihtZXRhZGF0YSwgd2ViU29ja2V0T3B0aW9ucyksIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU3Vic2NyaWJlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGdldE1ldGFkYXRhKHRhcmdldCkgfHwge307XHJcbiAgICAgICAgY29uc3QgZXZlbnRzID0gW3sgbmFtZTogZXZlbnQsIGZ1bmN0aW9uOiBwcm9wZXJ0eUtleSB9XTtcclxuICAgICAgICBpZiAobWV0YWRhdGEuZXZlbnRzKSB7XHJcbiAgICAgICAgICAgIGV2ZW50cy5wdXNoKC4uLm1ldGFkYXRhLmV2ZW50cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoTUVUQURBVEFfS0VZLCBPYmplY3QuYXNzaWduKG1ldGFkYXRhLCB7IGV2ZW50cyB9KSwgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBXZWJTb2NrZXRTZXJ2ZXIoKSB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBnZXRNZXRhZGF0YSh0YXJnZXQpIHx8IHt9O1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoTUVUQURBVEFfS0VZLCBPYmplY3QuYXNzaWduKG1ldGFkYXRhLCB7IGNvbm5lY3Rpb246IHByb3BlcnR5S2V5IH0pLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuXHJcbiJdfQ==