UNPKG

@addapptables/ng-web-socket

Version:
66 lines 5.27 kB
/** * @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==